Enter退出问题
我新建了一个QDialog窗口,里面有多个QLabel和QSpinBox和一个Exit退出按钮,但是编辑完QSpinBox按回车后窗口就马上退出了,后来发现是按钮默认设置成了StrongFocus的原因。
解决方法:
设置窗口中的退出按钮的focusPolicy
属性为NoFocus
Esc退出问题
需要重写QDialog的keyPressEvent()
:
#include <QKeyEvent>
void MyDialog::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
case Qt::Key_Escape: // 按下的为Esc键
break; // 不做反应直接退出
default:
QDialog::keyPressEvent(event);
}
}