文档章节

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

WangRichard
 WangRichard
发布于 2013/11/23 22:16
字数 365
阅读 29
收藏 0

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

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

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

© 著作权归作者所有

共有 人打赏支持
WangRichard
粉丝 4
博文 13
码字总数 11049
作品 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
QtInternal 之 Timer

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

晨曦之光
2012/05/08
213
0
QObject 之 Thread Affinity

注意,本文试图通过源码解释下面的问题: 子QObject必须在其parent关联的线程内创建 调用moveToThread()的对象其parent必须为0 事件驱动的对象要在单一线程内使用 QTimer、network模块的QTc...

晨曦之光
2012/05/08
986
0
QDesktopWidget 乱谈?

在QWidget的众多派生类之中,QDesktopWidget比较特殊的一个(另一个比较特殊的是QAxWidget,定义了信号槽,却不使用Q_OBJECT这个宏)。 我们知道QDesktopWidget的作用就是获取和桌面相关的各...

晨曦之光
2012/05/08
684
0
Qt 全局热键 QxtGlobalShortcut 分析与使用举例

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

晨曦之光
2012/05/08
2.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
1
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0
memcached命令行、memcached数据导出和导入

一、memcached命令行 yum装telnet yum install telent 进入memcached telnet 127.0.0.1 11211 命令最后的2表示,两位字节,30表示过期时间(秒) 查看key1 get key1 删除:ctrl+删除键 二、m...

Zhouliang6
今天
1
0
Linux定时备份MySQL数据库

做项目有时候要备份数据库,手动备份太麻烦,所以找了一下定时备份数据库的方法 Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这...

月夜中徘徊
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部