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

  • 相关阅读:
    eclipse恢复界面默认设置
    文件夹的拷贝
    文件的输入输出
    十进制转二进制,八进制,十六进制(查表法)
    数组元素的查找(折半查找)
    C++几个小函数
    C++ 内部排序(一)
    C++实现链表
    C++输出IP地址段内的合法地址
    我看软件工程师的职业规划
  • 原文地址:https://www.cnblogs.com/zzzsj/p/15771452.html
Copyright © 2020-2023  润新知