gpt4 book ai didi

c++ - 模型对话框移动到主窗口后面的 Qt 错误

转载 作者:行者123 更新时间:2023-11-30 04:45:54 27 4
gpt4 key购买 nike

我有一个很难解决的错误。我有两个窗口。

窗口 A 是包含文本框的主窗口(在此简化版本中)。用户可以通过在窗口 B 显示为键盘的位置单击它来编辑此文本框的内容。除了数字按钮外,还有 2 个附加按钮,Enter 和 Done。如果用户更改值并按 Enter,则文本框中的值会立即更新。然后按完成将退出窗口。

但是,如果用户在没有先按回车键的情况下按完成键,则会出现一个模态对话框,询问用户是否要保存该值。一旦做出选择,模型对话框和窗口 B 将退出。

当用户输入一个值并按下“完成”按钮时,就会出现该错误。当模态对话框出现时,窗口 B 移到窗口 A 后面。应该发生的是窗口 B 停留在窗口 A 之上。有趣的是,当我单步执行代码时,这个错误从未发生,这使得查明它变得棘手。

以前有没有人遇到过这个问题?

我目前在最新版本的 Linux Mint 上运行 Qt 5.9(截至撰写本文时)

此外,我还准备了一个演示此错误的示例项目。由于它比较复杂,我无法将它放入 1 个文件中。如果需要,我可能会在本周抽出时间将所有内容移动到一个文件中。但是,如果允许,我可以发布 Dropbox 链接。

最佳答案

可能问题出在[QDialog][1]类的父子关系设置错误。

以下段落可能对您的应用程序至关重要,但如果您不显示最小可重现示例,则很难说。

Note: The parent relationship of the dialog does not imply that the dialog will always be stacked on top of the parent window. To ensure that the dialog is always on top, make the dialog modal. This also applies for child windows of the dialog itself. To ensure that child windows of the dialog stay on top of the dialog, make the child windows modal as well.

关于c++ - 模型对话框移动到主窗口后面的 Qt 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57046138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com