我正在编写一个控制台应用程序,它允许您使用 ECMAScript 来移动鼠标,并定义热键等。鼠标的东西可以工作,现在我正在尝试添加定义热键的能力,当按下时会调用 QtScript处理函数。
问题是,当我尝试使用 QxtGlobalShortcut 创建热键时,我得到一个 SIGSEGV 并且一切都崩溃了。
这是代码:
int Keyboard::hot_key(QString key) {
QxtGlobalShortcut shortcut;
shortcut.setShortcut(QKeySequence(key));
shortcut.setEnabled(true);
connect(&shortcut, SIGNAL(activated()), this, SLOT(hot_key_pressed()));
return 0;
}
这条线QxtGlobalShortcut shortcut;
,如果我把除那条线之外的整个函数都删掉,它仍然会抛出一个段错误。
调试器说:
1 ZNK17QxtGlobalShortcut8shortcutEv C:\Qxt\lib\QxtGui.dll 0 0x6f6f14a6
2 ZN17QxtGlobalShortcutC1EP7QObject C:\Qxt\lib\QxtGui.dll 0 0x6f6f14f7
3 Keyboard::hot_key keyboard.cpp 16 0x403c0c
4 Keyboard::qt_metacall moc_keyboard.cpp 74 0x404740
5 QMetaObject::metacall qmetaobject.cpp 237 0x8f5ff8
考虑到在我看来 Windows 热键并不容易,我真的很想使用 Qxt,但到目前为止我只是碰壁。如果有人能指出我正确的方向,或者甚至推荐一些其他可能对我有帮助的库,或者一个很棒的热键教程。
提前致谢!