私はこのライン使用して私のダイアログからのQtで無効にXボタンをしました:Qtを使用してAlt + F4ウィンドウを閉じることを無効にする方法はありますか?
myDialog->setWindowFlags(Qt::Dialog | Qt::Desktop)
をしかし、私はこのコードを使用してAltキー + F4検出できませんでした:
void myClass::keyPressEvent(QKeyEvent *e)
{
if ((e->key()==Qt::Key_F4) && (e->modifiers()==Qt::AltModifier))
doSomething();
}
何をを検索する必要がありますか? + F4 Qtで無効にする必要がありますか?
あなたは、2個のエラーを持っている:それはPress'はない 'Pressed'とタイプが異なる' keyPressEvent(QKeyEvent * EVT) ''です。しかし、この修正が適用されて...うまくいきます。 :) –
keyPressEvent(QKeyEvent * evt)を単にオーバーライドして空にすると、動作しないなどのその他の問題が発生する可能性があります。たとえば、ユーザーがEnterキーを押して続行する場合など、必要なキーの動作を入力します。したがって、このような特定のケースでは明示的に許可したくないキーを定義する方がはるかに優れています。つまり、BaseWidget :: keyPressEvent(evt)を呼び出すことをお勧めします。BaseWidgetは継承されたものです(QWidget、QDialogなど) –