文档章节

Qt处理平台相关事件的方式

天朝搬砖工
 天朝搬砖工
发布于 2013/11/23 22:16
字数 365
阅读 36
收藏 0

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

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

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

© 著作权归作者所有

共有 人打赏支持
天朝搬砖工
粉丝 4
博文 14
码字总数 11252
作品 0
东城
其他
私信 提问
QT 5.1 Alpha1 发布,支持 Android 和 iOS

Qt 5.0 刚刚发布三个月后,Digia 发布了全新版本 Qt 5.1 的第一个 Alpha 测试版本,该版本最值得关注的就是首次对 Android 和 iOS 平台的支持。 月初时 Qt 开发者就已宣布正在为 iOS 的移植做...

oschina
2013/04/09
10.1K
29
Qt 全局热键 QxtGlobalShortcut 分析与使用举例

不少人有给程序添加全局热键的需求。网上随便一搜,就能找到不少介绍windows下如何实现的方式: 首先: 使用 RegisterHotKey和 UnregisterHotKey 注册和反注册热键 其次: 在事件全局过滤器 ...

晨曦之光
2012/05/08
2.8K
0
QtInternal 之 Timer

注意:本文翻译自 http://developer.qt.nokia.com 中的 QtTimers ,中文译文见 简体中文版 ,如果你对翻译wiki感兴趣,请参考Wiki中文帮助 定时器的 API Qt 提供了两套 计时器的 API QObjec...

晨曦之光
2012/05/08
247
0
如何保持GUI的响应流畅(QT平台)

引子   一般来说耗时较长的操作,分为计算密集型操作和IO密集型操作,对于这两类操作如何提高响应速度呢?   而从操作的本质上来说,操作又可分为不可分解操作,如在第三方库中耗时较长的...

mickelfeng
2013/05/18
0
0
QtRuby

Qt是Trolltech创建并发布的一个GUI工具包。Qt旨在成为多平台工具包,为Windows、Mac和UNIX操作系统提供一致的编程接口。开发人员只需编写代码一次,就可以在这三种平台上编译,而不需要做任何...

匿名
2009/01/02
3.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

Idea

command + E : 打开最近编辑过的文件 command + O : 打开指定文件 option + enter: 补全变量 实现接口 格式化字符串 System.out.printf("realName:" + u.getRealName() + "email: " + u.get...

xpttxsok
18分钟前
0
0
FTP 协议 1.0

自己制作的FTP协议:

Explorer0
29分钟前
2
0
Android 通过DrawableInflater加载自定义Drawable

一、Drawable 在Android系统张,图形图像的绘制需要在画布上进行操作和处理,但是绘制需要了解很多细节以及可能要进行一些复杂的处理,因此系统提供了一个被称之为Drawable的类来进行绘制处理...

IamOkay
40分钟前
1
0
灵活无处安放,所以选择流浪....《漆黑的空间》& 《灰色轨迹》

灵活无处安放,所以选择流浪....《漆黑的空间》& 《灰色轨迹》

yizhichao
46分钟前
1
0
Kafka+Flink 实现准实时异常检测系统

1.背景介绍 异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防...

架构师springboot
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部