2016-10-01 55 views
0

我想在我的Qt程序中创建一个简单的时钟:QLabel每秒更新一次。在QT中创建一个简单的时钟

QLabel名称:label_clock

我的钟“脚本”:

while (true) 
{ 
    QString time1 = QTime::currentTime().toString(); 
    ui->label_clock->setText(time1); 
} 

但是当我填写Flash到我的节目,你已经知道,它会停在这个脚本执行它 - 而永远给予真实的,所以在脚本下的其余代码将永远不会执行 - >程序崩溃。

我该怎么做才能使这个脚本工作?我想创建一个简单的时钟,每秒更新一次。

+0

在循环的每次迭代之间,你是否至少应该“睡一秒”? – Max

+0

@Max所以我应该使用什么呢? – allin0n3

回答

1

您可以使用QTimer。尝试是这样的:

QTimer *t = new QTimer(this); 
t->setInterval(1000); 
connect(t, &QTimer::timeout, [&]() { 
    QString time1 = QTime::currentTime().toString(); 
    ui->label_clock->setText(time1); 
}); 
t->start(); 

当然,你应该让C++ 11的支持(添加到您的pro文件CONFIG += c++11)。

+0

工作正常,谢谢。这是我正在寻找的东西! – allin0n3