【发布时间】:2010-12-21 07:04:29
【问题描述】:
我在 QT 中开发了一个 GUI,我必须在其中显示电池状态图标。要获取系统电源状态,我使用的是 windows API。但是要随时显示状态,是否需要使用线程不断读取和显示电源状态?
我正在考虑使用事件处理程序。但不确定如何实施。我在想,对于一个状态图标,我将运行一个线程。谁有更好的建议,请分享。
【问题讨论】:
我在 QT 中开发了一个 GUI,我必须在其中显示电池状态图标。要获取系统电源状态,我使用的是 windows API。但是要随时显示状态,是否需要使用线程不断读取和显示电源状态?
我正在考虑使用事件处理程序。但不确定如何实施。我在想,对于一个状态图标,我将运行一个线程。谁有更好的建议,请分享。
【问题讨论】:
使用线程可能有点矫枉过正,但使用计时器可能更适合这种情况。
QTimer 可用于在给定的时间间隔内更新电池状态。只需创建 QTimer 对象并将其timeout() 信号连接到您的对象中的插槽,也许在某些电池状态小部件中。在此插槽中,您只需读取新状态并相应地更新图标。以您选择的间隔(以毫秒为单位)启动 QTimer 实例。
顺便说一句。 Qt Mobility API 也可以在桌面上用于read power state。无论如何,如果移植不是问题,使用该平台已经提供的 API 可能会更容易。
【讨论】: