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