QT -- 定时器之QTimer


//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();
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM