c++ - 信号触发,但对话未聚焦

标签 c++ qt qt4

我有一个包含 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/

相关文章:

c++ - CGAL - 不能使用 import_from_polyhedron_3

c++ - Qt 如何向服务器发送 https 请求?

windows - 无法完成 QT4 中的基本任务

image - 设置 QPushButton 的背景图片

c++ - 重载矩阵乘法 "* "运算符有问题

c++ - WinHttpSendRequest : 2148074273 insufficient cache

c++ - 带有 alpha 混合图标的工具栏在 WinXP 安装上无法正确显示

c++ - 样式化 Qml 桌面组件

qt - Visual C# 中的 Gtk 尝试了一切。我将无法开发跨平台应用程序吗?

qt - qml 从信号发送列表/数组