0

Esc非モーダルモードのダイアログでは機能せず、イベントは下にあるウィンドウに移動します。追加のみ

setWindowModality(Qt::WindowModal);

作成時にダイアログに入力すると、Escキーが機能し、reject()スロットが呼び出されます。Esc非モーダルダイアログに出入りするのは正常ですか、それとも可能ですか?

4

2 に答える 2

1

カスタム QDialog を作成する場合、おそらくイベントフィルターを使用しますか? 電話すれば

qApp->installEventFilter(yourQDialog);

それを作成するときに、関数を定義できます

bool eventFilter(QObject *watched, QEvent *event);

探している「esc」をキャッチします。イベント フィルターの詳細については、http: //doc.qt.io/qt-5/qobject.html#installEventFilterをご覧ください。

于 2018-03-02T15:18:28.443 に答える
0

かわった

dialog->show();

に呼び出します

// Shows the dialog as a modal dialog, blocking until the user closes it.
dialog->exec();

今のところ問題なく動作します。ダイアログでイベントをキャッチする唯一の方法のようです。非モーダルではこれが許可されないか、別の回答で述べたようにキーイベントフィルターを使用します。

于 2018-03-04T18:54:05.350 に答える