Qt处理平台相关事件的方式
Qt处理平台相关事件的方式
WangRichard 发表于4年前
Qt处理平台相关事件的方式
  • 发表于 4年前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: Qt 平台相关 事件处理

      我们知道,Qt本身自带的事件处理是相当方便与强大的。在众多QObject的子类中,都有一个虚函数event(),我们可以通过重写其实现方式来获得作用于该应用上的一些事件,这在GUI应用中更是用的相当之多。然而,如果涉及到处理一些系统底层的事件,诸如操作系统关机或者注销休眠这类的事件,event()虚方法可能就心有余而力不足了。不过好在QObject还是给了使用者一些特别的方法来处理这些相当底层的系统事件。

     在Qt4里,我们可通过重写QObject的虚函数x11Event()、winEvent()等来达到获取平台相关事件的方式,当然这个方法只限于Qt4。在Qt5里,这些方法已经被一个新的方法给替换掉了:nativeEvent(const QByteArray & eventType, void * message, long * result)。这个方法的使用也是相当简单,重写她并获取我们所需的message即可,不过需要注意各平台的消息或者事件的类型。至于具体该如何利用,接下来就是参考各平台的相关API了。

     除了以上方式管理事件,我们也可以用eventfilter,具体的使用方式类似上面,细节还请参考手册了。

共有 人打赏支持
粉丝 5
博文 9
码字总数 10668
×
WangRichard
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: