Esc在非模态模式下对我的对话框不起作用,事件将转到底层窗口。只添加
setWindowModality(Qt::WindowModal);
到创建对话框使Esc键工作并调用reject()
插槽。Esc进入/退出非模态对话框是否正常或可能?
Esc在非模态模式下对我的对话框不起作用,事件将转到底层窗口。只添加
setWindowModality(Qt::WindowModal);
到创建对话框使Esc键工作并调用reject()
插槽。Esc进入/退出非模态对话框是否正常或可能?
如果您制作自定义 QDialog,也许使用事件过滤器?如果你打电话
qApp->installEventFilter(yourQDialog);
创建它时,您可以定义函数
bool eventFilter(QObject *watched, QEvent *event);
捕捉您正在寻找的“esc”。更多关于事件过滤器的信息:http: //doc.qt.io/qt-5/qobject.html#installEventFilter。
改变了
dialog->show();
拨电至
// Shows the dialog as a modal dialog, blocking until the user closes it.
dialog->exec();
现在工作正常。似乎是在对话框中捕获事件的唯一方法,非模态不允许这样做或使用另一个答案中提到的关键事件过滤器。