我有一个包含 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()
。为什么要处理这个键盘事件?
最佳答案
好吧,我刚刚弄明白了。由于这是一个对话框,因此按 ENTER 键会自动调用另一个插槽。此插槽还调用 checkPasswords()
并因此创建了第二个消息框,该消息框在第一个消息框关闭后立即出现。
关于c++ - 信号触发,但对话未聚焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806489/