可能重复:
Qt 4.7.4: Is there a way to find out the status of CAPS LOCK?
如何在mac os x上的qt中检测大写锁定密钥状态。我试过了
显示* 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
ld:找不到架构x86_64的符号 collect2:ld返回1退出状态
我是qt devlopment的新手。我不明白为什么它会向我显示这个错误。我已经包含了“#include”头文件。 如果有人知道请帮助我。
答案 0 :(得分:0)
您可以使用以下方法检测键的更改:
QWidget::keyPressEvent()
// and
QWidget::keyReleaseEvent()
这些可用于在某些情况下确定状态,例如,如果您知道程序初始化时大写锁定的状态,或者您是否假定或需要某个状态。但是,我知道没有与平台无关的方法直接查询大写锁定的当前状态。 您将需要使用与平台相关的方法。请务必支持大写锁定状态不存在或无法检测到的情况。