Qt 定时器 代码

时间:2021-03-18 23:27:03


方法一、

//头文件

QTimer *m_Timer;

//构造函数

m_Timer = new QTimer(this);
m_Timer->start(1000);//1秒刷新一次
QObject::connect(m_Timer,SIGNAL(timeout()),this,SLOT(upDateTimer()));

//1秒刷新调用函数

//Set timer function
void VsTestQt::upDateTimer()
{
int xCursor = m_curSor.pos().x();
int yCursor = m_curSor.pos().y();
ui.dateTimeEdit->setDateTime(QDateTime::currentDateTime());
ui.dateTimeEdit->setDisplayFormat("yyyy-MM-dd HH-mm-ss dddd");
//statuSecondLabel->setText(tr("Cursor Pos:(%1,%2)").arg(xCursor).arg(yCursor));
statuSecondLabel->setText(ui.dateTimeEdit->text());
}

方法二、

//头文件重载

void timerEvent(QTimerEvent *);

//构造函数

startTimer(1000); //其返回值为 1,即其 timerId 为 1
startTimer(5000);//其返回值为 2,即其 timerId 为 2
startTimer(10000); //其返回值为 3,即其 timerId 为 3

//重载函数调用

void MainWindow::timerEvent(QTimerEvent *t) //定时器事件
{
    switch(t->timerId()) //判断定时器的句柄
{
case 1 : ui->label->setText(tr(“ 每秒产生一个随机数: %1″).arg(qrand()%10));break;
case 2 : ui->label_2->setText(tr(“5 秒后软件将关闭”));break;
case 3 : qApp->quit();break; //退出系统
}
}