2012-03-22 24 views
4

私は、これに以前の問題があったと知っています< 4.7.4 Qtバージョン。これは解決されましたか?Qt 4.7.4:CAPS LOCKのステータスを調べる方法はありますか?

+0

一部のキーボードでは、caps lockキーのステータスも報告されません。 Qtが唯一の問題ではないかもしれません。 –

+0

これを参照してください。 [Qt - パスワード欄] [1]。この問題は既にそこで議論されていました。 [1]:http://stackoverflow.com/questions/2968336/qt-password-field – shan

答えて

2

私は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をチェックしてください。

関連する問題