zoukankan      html  css  js  c++  java
  • Qt分析:Qt中的两种定时器(可是QObject为什么要提高定时器呢,没必要啊。。。)

    Qt有两种定时器,一种是QObject类的定时器,另一种是QTimer类的定时器。

     
    (1)QObject类的定时器
     
    QObject类提供了一个基本的定时器,通过函数startTimer()来启动,通过killTimer()来结束,通过QTimerEvent来处理定时器事件。
     
    int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer);
    
    
    
    void killTimer(int id);
    
    
    
    void QObject::timerEvent(QTimerEvent * event);
    
    
    
    
    

    startTimer(int interval)启动一个时间间隔为interval毫秒的定时器,返回一个定时器标识符,如果未能启动成功,则返回0。
     
    该定时器只能使用killTime()来杀死,killTimer(int id)通过定时器标识符来杀死定时器。
     
    如果有多个定时器,可以通过QTimerEvent::timerId()来获取已经启动的定时器标识符。
     
     
    (2)QTimer类的定时器
     
    QTimer类定时器是QObject类定时器的扩展版或者说升级版,因为它可以提供更多的功能。比如说,它支持单次触发和多次触发。
     
    使用QTimer类定时器的步骤:
     
    (1)创建一个QTimer定时器实例:QTimer *timer = new QTimer(this);
    (2)连接超时信号与槽:connect(timer, SIGNAL(timeout()), this, SLOT(testFunc()));
    (3)启动定时器start();
    (4)适时关闭定时器:stop();
    (5)删除定时器实例:delete timer;
    
    
     
    公共函数:
     
    int               interval() const                                            获得定时器时间间隔

    bool              isActive() const                                         获得定时器激活状态

    bool              isSingleShot() const                                 获得单次触发使能状态

    int               remainingTime() const                              获得距离触发定时器事件的剩余时间

    void              setInterval(int msec)                                设置定时器时间间隔

    void              setSingleShot(bool singleShot)              设置使能/禁用单次触发

    void              setTimerType(Qt::TimerType atype)        设置定时器类型

    int               timerId() const                                           获得定时器标识符

    Qt::TimerType     timerType() const                             获得定时器类型
     
     
    公共槽函数:
     
    void     start(int msec)                             启动定时时间间隔为msec毫秒的定时器
    void     start()                                           启动定时器
    void     stop()                                           暂停定时器
     
     
    信号:
    void     timeout()                                    超时

    http://blog.csdn.net/jan5_reyn/article/details/38955719

  • 相关阅读:
    Thinkphp3.2.3如何加载自定义函数库
    mysql 字段引号那个像单引号的撇号用法
    php cli模式学习(PHP命令行模式)
    Django model 表与表的关系
    Django model 字段详解
    Django model 中的字段解释
    python系列-1 字符串操作
    nginx-匹配规则
    ansible系列3-pyYAML
    ansible系列2-常用命令
  • 原文地址:https://www.cnblogs.com/findumars/p/5574479.html
Copyright © 2011-2022 走看看