可能的重复项:
Qt 4.7.4: 有没有办法找出大写锁定的状态?
如何在 mac OS x 上的 qt 中检测 capslock 键状态。我试过了
Display *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中找不到符号收集2:LD 返回 1 个退出状态
我是qt开发的新手。我不明白为什么它向我显示此错误。我已经包含了"#include"头文件。如果有人知道,请帮助我。
您可以使用以下方法检测对键的更改:
QWidget::keyPressEvent()
// and
QWidget::keyReleaseEvent()
在某些情况下,这些可用于确定状态,例如,如果您知道程序初始化时大写锁定的状态,或者假设或需要某种状态。但是,据我所知,没有独立于平台的方法可以直接查询大写锁定的当前状态。您将需要使用依赖于平台的方法。请务必支持大写锁定状态不存在或无法检测到的情况。