4
我知道< 4.7.4 Qt版本中存在此問題。有沒有解決?Qt 4.7.4:有沒有辦法找出CAPS LOCK的狀態?
我知道< 4.7.4 Qt版本中存在此問題。有沒有解決?Qt 4.7.4:有沒有辦法找出CAPS LOCK的狀態?
我不知道任何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
}
在X11不要忘了在你的Qmake工程文件添加到-lX11
LIBS。
我不完全知道如何在OS X上執行此操作。如果需要,請查看IOHIKeyboard及其alphaLock()函數。還請檢查this,特別是功能darwinQueryHIDModifiers
。
有些鍵盤甚至不報告大寫鎖定鍵的狀態; Qt可能不是唯一的問題。 – 2012-03-22 21:37:35
看到這個。 [Qt - 密碼字段] [1]。這個問題已經在那裏討論過了。 [1]:http://stackoverflow.com/questions/2968336/qt-password-field – shan 2012-03-23 04:48:49