两个QWidget叠加,可部分代替layout的功能

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个QWidget叠加,可部分代替layout的功能相关的知识,希望对你有一定的参考价值。

在QT开发过程中,有时候会遇到这样的问题,当我们自己创建了一个Layout对象以后,使用QWidget的setLayout方法,将这个Layout对象应用到窗口中的时候,发现窗口上没有我们添加的控件,比如,QMainWindow就是一个例子,还有QToolBar也是这样,还有其他的QT预定义的别的窗口类有时候也会遇到这样的情况。

之所以出现这样的情况,是因为这个窗口类中,已经有了一个Layout对象了,这时候,当你再setLayout的时候,就是无效的,这是有三个办法,一个办法是调用layout()方法,返回这个窗口内部的Layout的对象,然后删除它,再调用setLayout设置自己的Layout对象,还有一个办法,就是直接使用这个窗口内部的Layout对象,第三个方法,就是直接创建其子窗口,在这个子窗口中使用Layout对象,如,在QMainWindow中,我们通常创建一个继承于QWidget的窗口对象,然后调用setCentralWidget方法来安装这个窗口,然后在这个窗口中使用自己的Layout。

原文链接:http://blog.csdn.net/xinzhiyounizhiyouni/article/details/44521501

http://blog.csdn.net/gyhguoge01234/article/details/53561271

以上是关于两个QWidget叠加,可部分代替layout的功能的主要内容,如果未能解决你的问题,请参考以下文章

使 QWidget 的一部分可拖动

QMainWindow和QWidget分别作为主窗体时对Layout的影响

在 QLayout 和 QWidget 之间转换

为 QWidget 清除透明背景

可以离开屏幕的可拖动叠加层?

如何避免 QStackedLayout 中包含隐藏的 QWidget 高度?