模型对话框移动到主窗口后面的Qt错误
Qt bug where model dialog moves behind main window
我有一个很难解决的错误。我有两个窗口。
窗口 A 是包含文本框的主窗口(在此简化版本中)。用户可以通过单击窗口 B 显示为键盘的位置来编辑此文本框的内容。除了数字按钮外,还有 2 个附加按钮,Enter 和 完成。如果用户更改值并按 Enter 键,则会立即更新文本框中的值。然后按完成将退出窗口。
但是,如果用户在没有先按 Enter 的情况下按 Done,则会出现一个模式对话框,询问用户是否要保存该值。做出选择后,模型对话框和窗口 B 将退出。
当用户输入值并按"完成"按钮时,会发生此错误。当模式对话框出现时,窗口 B 将移动到窗口 A 后面。有趣的是,当我逐步执行代码时,此错误永远不会发生,这使得查明变得棘手。
以前有没有人遇到过这个问题?
我目前正在最新版本的Linux Mint上运行Qt 5.9(截至撰写本文时)
此外,我还准备了一个演示此错误的示例项目。由于它的复杂性较大,我无法将其放入 1 个文件中。如果需要,我本周可能会找到一些时间将所有内容移动到一个文件中。但是,如果允许,我可以发布 Dropbox 链接。
也许问题源于 [QDialog][1] 类的父子关系设置错误。
以下段落可能对您的应用程序至关重要,但如果您不展示最小可重现的示例,则很难说。
注意:对话框的父关系并不意味着 对话框将始终堆叠在父窗口的顶部。确保 对话框始终位于顶部,使对话框成为模式。这也 适用于对话框本身的子窗口。确保孩子 对话框的窗口停留在对话框的顶部,使孩子 窗口模式也是如此。
相关文章:
- Qt 错误:QSqlQuery::value:尝试从表中检索统计信息时未定位在有效记录上 (QComboBox)
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- Qt 错误消息"qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed"
- Qt 错误:未定义对"str2ba"的引用
- 为安卓构建时出现Qt错误
- 模型对话框移动到主窗口后面的Qt错误
- QT 5 [ 错误: QtGui/QApplication: 没有这样的文件或目录]
- QT错误:运行代码后,在QT中获得Protobuf错误
- Linux/QT-错误创建SSL上下文(错误:140A90C4 ..)
- Qt 错误:错误:调用"QHBoxLayout::addItem(QPushButton*&)"没有匹配函数
- QT错误:搜索不存在的函数
- QT错误:LNK1120:1未解决的外部Main.OBJ:-1:错误:LNK2019运行QMAKE
- 在QIODevice::Append模式下打开的QFile意外工作.这是一个Qt错误吗
- QT - C++错误:在此上下文中'QWidget::QWidget(const QWidget&)'是私有的
- Qt错误:在Mac OS X Yosemite上找不到体系结构x86_64的符号
- 在Mac中构建Qt 5.4错误
- 连接DLL后出现QT 5.4错误
- 带有 QT 错误的 OpenGL:ASSERT:"QOpenGLFunctions::isInitialized(d_ptr)" 。无法创建 OpenGL 上下文
- 在Qt Creator中编译时出现Qt错误
- 参数计数不匹配 SQLite 和 Qt 错误