From: http://dragoon666.blog.163.com/blog/static/107009194201092602326598/
1.新建Gui工程,在主界面上添加一个标签label,并设置其显示内容为“0000-00-00 00:00:00 星期日”。
2.在mainwindow.h中添加槽函数声明。
private slots:
void timerUpDate();
3.在mainwindow.cpp中添加代码。
添加#include <QtCore>的头文件包含,这样就包含了QtCore下的所有文件。
构造函数里添加代码:
QTimer *timer = new QTimer(this);
//新建定时器
connect(timer,SIGNAL(timeout()),this,SLOT(timerUpDate()));
//关联定时器计满信号和相应的槽函数
timer->start(1000);
//定时器开始计时,其中1000表示1000ms即1秒
4.然后实现更新函数。
void MainWindow::timerUpDate()
{
QDateTime time = QDateTime::currentDateTime();
//获取系统现在的时间
QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");
//设置系统时间显示格式
ui->label->setText(str);
//在标签上显示时间
}
5.运行程序。
======================================================
以下是本人自己整理的代码:
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: void timerEvent(QTimerEvent *); private: Ui::MainWindow *ui; private slots: void on_btnLogin_clicked(); #if 0 void timerUpDate(); #endif }; #endif // MAINWINDOW_H
mainwindow.cpp
#include <QMessageBox> #include <QtCore> #include <time.h> #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); #if 0 QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(timerUpDate())); timer->start(1000); #else qsrand(time(0)); startTimer(1000); // 返回值为1, 即timerId startTimer(5000); // 返回值为2 startTimer(10000); // 返回值为3 #endif } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_btnLogin_clicked() { QMessageBox::information(this, "Caption", tr("Hello你好吗"), QMessageBox::Ok); } #if 0 void MainWindow::timerUpDate() { QDateTime time = QDateTime::currentDateTime(); QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd"); ui->lblCurDate->setText(str); } #else void MainWindow::timerEvent(QTimerEvent *t) { switch(t->timerId()) { case 1: { QDateTime time = QDateTime::currentDateTime(); QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd"); ui->lblCurDate->setText(str); ui->lbl1->setText(tr("每秒产生一个随机数: %1").arg(qrand() % 10)); ui->lbl1->adjustSize(); } break; case 2: ui->lbl2->setText(tr("5秒后软件将关闭")); ui->lbl2->adjustSize(); break; case 3: qApp->quit(); // 退出系统 break; } } #endif
main.cpp
#include <QtGui/QApplication> #include <QTextCodec> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); MainWindow w; w.show(); return a.exec(); }