我有一个包含LineEdit元素的对话框。如果按下ENTER,我想关闭对话框,所以我为returnPressed()信号添加了一个插槽:
ChPasswd::ChPasswd(QWidget *parent) :
QDialog(parent),
ui(new Ui::ChPasswd)
{
ui->setupUi(this);
connect(ui->NewPasswordInput, SIGNAL(returnPressed()), SLOT(checkPasswords()));
}
在某些时候,我打开一个消息框:
QMessageBox mb(...);
mb.exec();
该框打开并获得焦点。问题是,当我现在按下ENTER时,ChPasswd
中的returnPressed信号将被激活并且checkPasswords()
被调用。为什么要处理这个键盘事件?
答案 0 :(得分:0)
好吧,我刚想通了。由于这是一个对话框,按ENTER键会自动调用另一个插槽。此广告位还会调用checkPasswords()
,因此会创建第二个消息框,该消息框会在第一个消息框关闭后立即显示。