ToB企服应用市场:ToB评测及商务社交产业平台

标题: QT教程:start()和startTimer()的区别 [打印本页]

作者: 宝塔山    时间: 2024-9-6 01:20
标题: QT教程:start()和startTimer()的区别
start() - QTimer 类的成员函数

        start() 是 QTimer 类的成员函数,用于启动一个基于 QTimer 对象的定时器。QTimer 是 Qt 中常用的定时器类,它会在设定的时间隔断后发出 timeout() 信号。
用法

  1. QTimer timer;
  2. timer.start(1000);  // 每隔 1000 毫秒触发一次 timeout() 信号
复制代码
示例 

  1. QTimer timer;
  2. QObject::connect(&timer,SIGNAL(timeout(), this, SLOT(on_m_clock_timeout());
  3. timer.start(1000);  // 每隔 1000 毫秒调用一次 onTimeout()
复制代码

startTimer() - QObject 类的成员函数 

        startTimer() 是 QObject 类的成员函数,用于启动一个低级别的定时器。它返回一个定时器 ID,之后可以通过 killTimer() 来停止该定时器。
用法 

  1. int timerId = startTimer(1000);  // 每隔 1000 毫秒触发一次定时器事件
复制代码

特点


区别

特性
start() (QTimer)
startTimer() (QObject)

QTimer
QObject
触发机制
通过 timeout() 信号
调用 timerEvent() 变乱处理函数
使用场景
GUI 应用中,定期触发信号的场景
低级别定时器,适合对变乱和性能有特别需求的场景
停止定时器
stop()
killTimer(timerId)
依赖变乱循环
是(基于信号与槽机制)
是(通过变乱机制处理)
需要重写变乱处理

是,需要重写 timerEvent()
是否返回定时器 ID

是,返回定时器 ID
适合应用
适合需要信号与槽的定时器变乱(如更新UI、动画)
适合更细粒度控制和性能要求的场景(如后台处理、非GUI应用)
总结



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4