Qt5全局热键-QxtGlobalShortcut
来源:互联网 发布:淘宝女鞋店铺简介范文 编辑:程序博客网 时间:2024/05/03 12:57
转载地址:http://www.cnblogs.com/aftertherainofstars/p/3946313.html
最近做一个项目需要注册全局热键,在网上搜索发现有个第三方库 libqxt 中给出一个比较好的跨平台的解决方案,就是 QxtGlobalShortcut。
但是编译过程中发现这个库用到的QAbstractEventDispatcher::EventFilter在qt5.3.1中已经没了,所以我就自己改写了一下。
更改部分如下:
在QxtGlobalShortcutPrivate类的前面添加如下代码,因为在qt5中需要用到QAbstractNativeEventFilter这个类
源文章地址http://www.cnblogs.com/AfterTheRainOfStars/p/3946313.html
1 #if(QT_VERSION>=0x050000)2 #include <QAbstractNativeEventFilter>3 #endif
然后将
class QxtGlobalShortcutPrivate : public QxtPrivate<QxtGlobalShortcut>
改为
1 class QxtGlobalShortcutPrivate : public QxtPrivate<QxtGlobalShortcut>2 #if(QT_VERSION>=0x050000)3 , public QAbstractNativeEventFilter4 #endif
再将
1 static QAbstractEventDispatcher::EventFilter prevEventFilter;2 static bool eventFilter(void* message);
修改为
1 #if(QT_VERSION<0x050000)2 static QAbstractEventDispatcher::EventFilter prevEventFilter;3 static bool eventFilter(void* message);4 #else5 bool nativeEventFilter(const QByteArray &eventType, void *message, long *result);6 #endif
然后分别在qxtglobalshortcut_mac.cpp,qxtglobalshortcut_win.cpp,qxtglobalshortcut_x11.cpp中将
bool QxtGlobalShortcutPrivate::eventFilter(void* message)
函数的实现改为如下:
1 #if(QT_VERSION<0x050000) 2 bool QxtGlobalShortcutPrivate::eventFilter(void* message) 3 { 4 原本函数体内的代码; 5 } 6 #else 7 bool QxtGlobalShortcutPrivate::nativeEventFilter(const QByteArray &, void *message, long *) 8 { 9 同 eventFilter函数内的代码10 }11 #endif
经过这样修改以后就能用在qt5.3.1上面了,而且不影响在原本的qt4上使用
代码下载地址:http://download.csdn.net/detail/zhangyspa/7842941
另外,关于QxtGlobalShortcut的使用方法可以参考这个博客
http://blog.csdn.net/dbzhang800/article/details/6302816
- Qt5全局热键-QxtGlobalShortcut
- Qt 全局热键 QxtGlobalShortcut 分析与使用举例
- Qt 全局热键 QxtGlobalShortcut 分析与使用举例
- Qt5注册全局热键
- 全局热键
- 全局热键
- 全局热键
- 添加全局热键
- VB 全局热键
- C#注册全局热键
- [测试]注册全局热键
- Delphi全局热键
- C#注册全局热键
- 全局热键管理工具
- c#注册全局热键
- C#注册全局热键
- Qt全局热键
- Qt实现全局热键
- 运算符、表达式、语句
- LeetCode OJ - Sqrt(x)
- Christian Louboutin femme We'll a range of to do with merchandise category could be the by the name
- hommes mizuno wave prophecy We'll a range of to do with merchandise category could be the by the nam
- linux内核学习初步
- Qt5全局热键-QxtGlobalShortcut
- 递归思想
- 黑马程序员 异常处理、File类和IO流之字节读写
- 黑马程序员----构造方法
- 用xorg.conf设置显示器分辨率
- python学习笔记——pass del
- 大数减法、加法、乘法
- bzoj1500: [NOI2005]维修数列
- Android中Context详解 ---- 你所不知道的Context