4
私は、これに以前の問題があったと知っています< 4.7.4 Qtバージョン。これは解決されましたか?Qt 4.7.4:CAPS LOCKのステータスを調べる方法はありますか?
私は、これに以前の問題があったと知っています< 4.7.4 Qtバージョン。これは解決されましたか?Qt 4.7.4:CAPS LOCKのステータスを調べる方法はありますか?
私はQtソリューションを知らない。 X11上で
しかし、このコードは、両方のウィンドウ(テストしていない)とX11ベースのOS上で動作するはずです(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
}
あなたのqmakeのプロジェクトファイルにLIBSに-lX11
を追加することを忘れないでください。
OS Xでこれを行う方法は正確に分かりません。必要に応じて、IOHIKeyboardとそのalphaLock()関数を見てください。また、this、特に関数darwinQueryHIDModifiers
をチェックしてください。
一部のキーボードでは、caps lockキーのステータスも報告されません。 Qtが唯一の問題ではないかもしれません。 –
これを参照してください。 [Qt - パスワード欄] [1]。この問題は既にそこで議論されていました。 [1]:http://stackoverflow.com/questions/2968336/qt-password-field – shan