我知道在早期的Qt版本中(小于4.7.4),这个问题曾经存在过。现在这个问题已经得到了解决吗?
我知道在早期的Qt版本中(小于4.7.4),这个问题曾经存在过。现在这个问题已经得到了解决吗?
我不知道任何Qt的解决方案。
然而,这段代码应该可以在Windows(未经测试)和基于X11的操作系统上运行(在Linux上可以运行)。
#include <X11/XKBlib.h>
#include <QX11Info>
bool capsOn()
{
#ifdef Q_WS_WIN // MS Windows version
return GetKeyState(VK_CAPITAL) == 1;
#elif Q_WS_X11 // X11 version
unsigned int n = 0;
Display *d = QX11Info::display();
XkbGetIndicatorState(d, XkbUseCoreKbd, &n);
return (n & 0x01) == 1;
#else
# error Platform not supported
#endif
}
-lX11
。darwinQueryHIDModifiers
。