有一个主窗口称为 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
1
whi147 OP 手机打的。排版乱了
|
2
whi147 OP 这个问题没人知道吗
|
3
nyxsonsleep 2021-05-03 19:16:26 +08:00
似乎是删除父类关系的函数作用时机的问题,可能和 qt 的回收机制有关。
解决起来也不复杂吧,既然 b 窗口再创建一个子窗口就不会发生 bug 。那么你在分离的时候创建一个不可见的 d 然后删除即可。 |
4
whi147 OP @nyxsonsleep 我找到了一种方式解决,在 ab 窗口分开后,重新设置 c 窗口属性就可以了
|