• 12140阅读
  • 10回复

QT 如何注册系统热键,类似 Windows上的RegisterHotKey函数一样 [复制链接]

上一主题 下一主题
离线dedodong
 

只看楼主 倒序阅读 楼主  发表于: 2008-06-03
— 本帖被 XChinux 执行加亮操作(2008-06-04) —
QT 如何注册系统热键,类似 Windows上的RegisterHotKey函数一样。

犹如: 我按快捷键 alt+ctrl+a 就把qt程序界面显示出来、

不知道qt中有注册系统热键的接口不? 望大家多多指教。

[ 此贴被dedodong在2008-06-04 23:49重新编辑 ]
离线steinlee

只看该作者 1楼 发表于: 2008-06-04
reimplement QWidget::keyPressEvent ( QKeyEvent * event ) in your class to catch them
Looking for remote C/C++ and Qt 兼职
离线dedodong

只看该作者 2楼 发表于: 2008-06-04
谢谢你的答复,但我想要的是拦截系统键,而不是处理程序本身已经获取的消息
离线158496001
只看该作者 3楼 发表于: 2008-06-22
这个我也很相知道,哪位大侠提示一下,多谢
离线mumutouv

只看该作者 4楼 发表于: 2008-06-22
拦截系统键,这个肯定是需要用到X11的Api
离线casual0402

只看该作者 5楼 发表于: 2010-03-18
调用winAPI
离线wczt_123
只看该作者 6楼 发表于: 2010-07-26
顶下,谁知道的说下


9楼的有效

解决方法
1:下载9楼网址上的那个库,在linux下编译安装,ubuntu9.10上会报找不到X11/libx.h,执行命令apt-get install libx11-dev安装完后再编译就可以了
2:在qt中使用qxt库
    在pro文件中加上
    CONFIG  += qxt
     QXT     += core gui
    在主窗体类的头文件里加上
   #include <QxtGlobalShortcut>

      在主窗体的初始化函数里加上
    QxtGlobalShortcut* shortcut = new QxtGlobalShortcut();
    connect(shortcut, SIGNAL(activated()), this, SLOT(showForm()));
    shortcut->setShortcut(QKeySequence("Ctrl+Shift+F12"));
这个showForm()是自己实现的槽,就是在按下Ctrl+Shift+F12后要执行的函数

就这些了,希望对别人有点帮助
[ 此帖被wczt_123在2010-07-26 17:09重新编辑 ]
离线wczt_123
只看该作者 7楼 发表于: 2010-07-26
离线wczt_123
只看该作者 8楼 发表于: 2010-07-26
别沉了................................................................
离线yj_yulin

只看该作者 9楼 发表于: 2010-07-26
离线wczt_123
只看该作者 10楼 发表于: 2010-07-26
引用第9楼yj_yulin于2010-07-26 11:37发表的  :
http://doc.libqxt.org/tip/qxtglobalshortcut.html



有效,谢谢了~~~~~~~

快速回复
限100 字节
 
上一个 下一个