【发布时间】:2019-07-15 19:33:20
【问题描述】:
我有一个很难解决的错误。我有两个窗户。
窗口 A 是包含文本框的主窗口(在此简化版本中)。用户可以通过在窗口 B 显示为键盘的位置单击该文本框来编辑该文本框的内容。除了数字按钮外,还有 2 个附加按钮,Enter 和 Done。如果用户更改值并按 Enter,则文本框中的值会立即更新。然后按完成将退出窗口。
但是,如果用户在没有先按 Enter 的情况下按完成,则会出现一个模式对话框,询问用户是否要保存该值。一旦做出选择,模型对话框和窗口 B 将退出。
当用户输入一个值并按下“完成”按钮时,就会出现该错误。当模态对话框出现时,窗口 B 移动到窗口 A 后面。应该发生的是窗口 B 停留在窗口 A 之上。有趣的是,当我单步执行代码时,这个错误从未发生,这使得精确定位变得棘手。
以前有没有人遇到过这个问题?
我目前在最新版本的 Linux Mint 上运行 Qt 5.9(在撰写本文时)
另外,我准备了一个示例项目来演示这个错误。由于它的复杂性较大,我无法将其放入 1 个文件中。如果需要,我这周可能会抽出一些时间将所有内容移到一个文件中。但是,如果允许,我可以发布 Dropbox 链接。
【问题讨论】:
-
你试过玩窗口标志吗?曾经在 Ubuntu 上遇到过一些问题。您是否尝试将 Window A 设置为 Window B 的父级?更多的方式,也许?您能否发布您设置窗口属性并从另一个调用显示窗口的代码的确切部分,以便可以检查所描述的行为?
标签: c++ qt user-interface