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
构造函数里添加代码:
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
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
#include
#include
#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
#include
#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();
}
|