测试程序下载地址
问题描述
(Qt5.7.1)
主界面有一个 Widget, 它有一个子控件 label1, 同时 Widget 有一个同级兄弟控件 label2。
现在我需要设置 label1 为 NativeWindow,同时:
- label1 还设置了 WA_DontCreateNativeAncestors,让他的祖先控件不要成为 NativeWindow;
- 主程序设置了 QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); 不让 NativeWindow 兄弟控件也成为 NativeWindow;
程序运行后发现 Widget 这个控件显示混乱了
(1)混乱的显示结果,如图:
(2)期望的正常显示结果如下:
进一步说明
- (1) 混乱的结果中,我没有在 Widget 中设置 Layout, 并将 label1 到 Layout 里;
- (2)正确的结果中,使用了 Layout
问题
- (1)混乱的显示的原因可能源于哪里?
- (2)中仅仅增加了布局就显示正常了,那么Qt 自带的 Layout 对 NativeWindow 有什么影响呢?
- Native Window 和 Alien Widget 的层级关系如何,Native Window 会比同级的 Alien Widget 的 Z-order 序列更高吗?