Qt基础学习(2)-----定时器之QTimer

时间:2022-04-17 00:14:54
//mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
class QLCDNumber;
class QTimer;
class MyDialog : public QDialog
{
Q_OBJECT
public:
explicit MyDialog(QWidget *parent = 0);
signals:
public slots:
void onTimerOut();
private:
QLCDNumber *lcd;
QTimer *timer;
};
#endif // MYDIALOG_H


 

 

//mydialog.cpp
#include "mydialog.h"
#include <QtGui/QLCDNumber>
#include <QtGui/QVBoxLayout>
#include <QTimer>
#include <QTime>
MyDialog::MyDialog(QWidget *parent) :
QDialog(parent)
{
//新建一个QLCDNumber对象
lcd = new QLCDNumber();
//设置晶体管控件QLCDNumber能显示的位数
lcd->setDigitCount(10);
//设置显示的模式为十进制
lcd->setMode(QLCDNumber::Dec);
//设置显示方式
lcd->setSegmentStyle(QLCDNumber::Flat);

//新建一个QTimer对象
timer = new QTimer();
//设置定时器每个多少毫秒发送一个timeout()信号
timer->setInterval(1000);
//启动定时器
timer->start();

QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(lcd);
//信号和槽
connect(timer, SIGNAL(timeout()), this, SLOT(onTimerOut()));

//重新设置窗口的布局管理器
this->setLayout(layout);
//重新设置窗口的大小
this->resize(200, 100);
//重新设置窗口的标题
this->setWindowTitle("QTimerDemo");
}

void MyDialog::onTimerOut()
{
//获取系统当前时间
QTime time = QTime::currentTime();
//设置晶体管控件QLCDNumber上显示的内容
lcd->display(time.toString("hh:mm:ss"));
}


 

//main.cpp
#include <QtGui/QApplication>
#include "mydialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyDialog dialog;
dialog.show();
return a.exec();
}


 

程序运行截图:

Qt基础学习(2)-----定时器之QTimer