定时器也是一个我们经常使用的东西。下面的代码演示了定时器的基本使用方法。
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); this->setWindowTitle("CLOCK"); //设置窗口标题 //设置标签显示信息 ui->label->setText(QString("<center><h1>00</h1></center>")); ui->label_2->setText(QString("<center><h1>00:</h1></center>")); ui->label_3->setText(QString("<center><h1>00:</h1></center>")); //启动定时器使用函数startTimer(),它的返回值唯一标识一个定时器 id1 = startTimer(1000*60*60); //1时 id2 = startTimer(1000*60); //1分 id3 = startTimer(1000); //1秒 } void MainWindow::timerEvent(QTimerEvent *event) { if(this->id3 == event->timerId()) //event有个函数叫timerId可以获取是哪个定时器发出的事件 { static int num1= 0; if(60 == num1) { num1 = 0; } if(10 <= num1) //QString::number()能把一个int转换为Qstring类型。 ui->label->setText(QString("<center><h1>%1</h1></center>").arg(QString::number(num1++))); else ui->label->setText(QString("<center><h1>0%1</h1></center>").arg(QString::number(num1++))); } if(this->id2 == event->timerId()) { static int num2= 0; if(60 == num2) { num2 = 0; } if(10 <= num2) ui->label_2->setText(QString("<center><h1>%1:</h1></center>").arg(QString::number(num2++))); else ui->label_2->setText(QString("<center><h1>0%1:</h1></center>").arg(QString::number(num2++))); } if(this->id1 == event->timerId()) { static int num3= 0; if(24 == num3) { num3 = 0; } if(10 <= num3) ui->label_3->setText(QString("<center><h1>%1:</h1></center>").arg(QString::number(num3++))); else ui->label_3->setText(QString("<center><h1>0%1:</h1></center>").arg(QString::number(num3++))); } } MainWindow::~MainWindow() { delete ui; }运行结果如下所示:
当然了这样的CLOCK肯定是一点都不准确的。因为QTimer是一个定时器,它不是获取系统时间的。要想显示准确的时间还是需要获取系统时间,使用QTime这是比较稳妥的做法。
---来自腾讯云社区的---zy010101
微信扫一扫打赏
支付宝扫一扫打赏