QTimer使用

转自:http://www.linuxidc.com/Linux/2011-10/45832p2.htm

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


========运行效果如下============

QTimer使用_第1张图片

你可能感兴趣的:(QTimer使用)