qt 透明窗口弹窗问题,有什么好方法解决

2021-04-28 18:57:47 +08:00
 whi147

有一个主窗口称为 A,在 A 窗口内创建一个子窗口 b,在 b 窗口创建一个独立窗口 c (和 b 有父子关系,窗口类型为 qtool )。

将 c 窗口显示一次后隐藏( show 、hide ),将 A 、b 窗口断开父子窗口关系,b 升级为 B 独立窗口,A 、B 窗口同级。

bug:这时候显示 c 窗口,会抬高 A 窗口,隐藏 c 窗口会激活 A 窗口,c 窗口的父窗口为 B 。

如果 B 窗口再创建一个子窗口 d,显示、隐藏 d 窗口都不会发生上面这个 bug 。

如果 c 窗口在创建时没有显示过一次,分离 A 、B 窗口后也不会发生上面这个 bug

1320 次点击
所在节点    Qt
4 条回复
whi147
2021-04-28 18:58:28 +08:00
手机打的。排版乱了
whi147
2021-04-29 08:15:16 +08:00
这个问题没人知道吗
nyxsonsleep
2021-05-03 19:16:26 +08:00
似乎是删除父类关系的函数作用时机的问题,可能和 qt 的回收机制有关。
解决起来也不复杂吧,既然 b 窗口再创建一个子窗口就不会发生 bug 。那么你在分离的时候创建一个不可见的 d 然后删除即可。
whi147
2021-05-04 08:23:41 +08:00
@nyxsonsleep 我找到了一种方式解决,在 ab 窗口分开后,重新设置 c 窗口属性就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/773911

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX