• QT 下使用定时器


      定时器是用来处理周期性事件的一种对象,类似于硬件定时器。例如设置一个定时器的定时周期为 1000 毫秒,那么每 1000 毫秒就会发射定时器的 timeout() 信号,在信号关联的槽函数里就可以做相应的处理。
      Qt 中的定时器类是 QTimer。QTimer 不是一个可见的界面组件,在 UI 设计器的组件面板里找不到它。定时器的主要类的QTimer 类,其主要的属性是 interval,是定时中断的周期,单位毫秒。QTimer 主要的信号是 timeout(),在定时中断时发射此信号,要想在定时中断里做出响应,这就需要编写 timeout() 信号的槽函数。下面是窗口类中增加的定义(省略了其他不相关的定义):

    
    
    #include <QTimer>
    class MainWindow : public QMainWindow
    {
      private slots:
          void MyTimeout () ; //定时溢出处理槽函数
      private:
          QTimer *fTimer;    //定时器
    };

      然后新建定时器,建议在你程序初始化的时候新建,避免多次新建定时器类和多次链接信号槽。

    fTimer=new QTimer(this);  //新建定时器类
    /*把定时器与信号槽链接,注意不要多次调用,你每调用一次就会多创建一次信号槽链接,例如调用了两次,当第一个信号槽链接停止时,第二个定时器信号槽链接还会继续运行,就需要再停止一次定时器*/
    connect(fTimer,SIGNAL(timeout()),this,SLOT(MyTimeout()));

      接着在你需要启动定时器的位置调用启动函数启动。

    fTimer->stop();         //启动前停止定时器,避免前面有未关闭的定时器
    fTimer->start (10) ;    //设置定时周期,单位:毫秒

      然后编写你的定时器的信号槽代码,这里的代码是定时器定时时间到了的时候就会执行的代码。

    void MainWindow::MyTimeout()
    {//定时器中断响应    
    }

      最后在你需要关闭定时器的位置,调用关闭函数,关闭定时器。

    fTimer->stop();   //关闭定时器
  • 相关阅读:
    springboot整合mongdb
    自动垃圾收集机制
    类加载机制
    MacBook 虚拟机的选择
    Spark 学习之 spark-sql.sh的简单使用
    spark 学习之 hadoop搭建之 ssh免密码登录
    userdel account is currently in use
    linux 磁盘管理
    qt ui文件转换成python
    opensuse安装telegram客户端小计
  • 原文地址:https://www.cnblogs.com/xingboy/p/14523817.html
Copyright © 2020-2023  润新知