可能重复: Qt 4.7.4: Is there a way to find out the status of CAPS LOCK?
如何在mac os x上检测qt中的capslock键状态。
显示*d= XOpenDisplay((char*)0);
bool caps_state = false;
if (d)
{
unsigned n;
XkbGetIndicatorState(d, XkbUseCoreKbd, &n);
caps_state = (n & 0x01) == 1;
}
return caps_state;
但它给了我以下错误:
架构x86_64的未定义符号:
"_XOpenDisplay",引用自:.o myclass::GetCapslockState()
myclass::keyEvent(QKeyEvent*)
"_XkbGetIndicatorState",引用自:.o
myclass::GetCapslockState() in .o
myclass::keyEvent(QKeyEvent*) in .o
没有找到用于体系结构x86_64 collect2的符号: ld返回一个退出状态
我是新来的。我不明白它为什么要给我看这个错误。我已经包含了"#include“头文件。如果有人知道请帮帮我。
发布于 2012-12-03 17:31:21
您可以使用以下方法检测到对键的更改:
QWidget::keyPressEvent()
// and
QWidget::keyReleaseEvent()
在某些情况下,可以使用这些方法来确定状态,比如您知道在程序初始化时caps锁的状态,或者假设或需要某种状态。然而,没有平台无关的手段,我知道,直接查询当前状态的大写锁。您需要使用依赖于平台的方法。确保支持caps锁状态不存在或无法检测到的情况。
https://stackoverflow.com/questions/13686897
复制相似问题