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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #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
1 2 3 4 5 6 7 8 9 10 11 12 13 | #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(); } |