0

QMainWindow と一緒に XEvent を使用して、 Window Manager でもアプリケーションを閉じることができないようにする必要があると思います。

これは、すべてのキーボード、マウス ボタンをブロックする全画面表示のビデオ ゲームのようなものです。

PS: QWidget::grabKeyboard() && QWidget::grabMouse() は、「ALT_TAB」などのキーの組み合わせで他のアプリケーションに切り替えようとすると機能しません

ありがとう。

4

2 に答える 2

2

他のアプリからのすべての入力を完全にブロックするには、 /の組み合わせXGrabServerではなく andを使用する必要があります。Qt にそのための API があるかどうかはわかりませんが、いつでも Xlib 関数を直接呼び出すことができます。XGrabKeyboardXGrabPointer

しかし、私はそれに対してお勧めします。アプリケーションがなんらかの理由でグラブを解放しない場合は、スタックしており、コンソールにエスケープして強制終了する必要があります。

于 2011-06-08T10:58:23.640 に答える
0

ここで説明されているように、メイン ウィンドウのcloseEvent()をオーバーライドし、 ignore()メソッドを使用してイベントを拒否できると思います。

于 2011-06-08T10:53:35.517 に答える