关于QT QLayout
来源:互联网 发布:lol封3年淘宝解封方法 编辑:程序博客网 时间:2024/05/22 03:45
在Qt 中,QWidget有两个属性maximumSize和minimumSize ,这两个分别表示窗口大小能拉伸到的最大值,以及能缩小到的最小值。
这两个属性通过这个两个函数设置,setMaximumSize(const QSize &),setMinimumSize(const QSize &)。
在查看文档中发现有一个setFixedSize(const QSize &s)函数,这个函数就是将maximumSize和minimumSize全部都设置为参数S指定的大小。
ps:承载Layout的Widget就是通过调用setLayout(pLayout)函数的widget。
关于Qt的Layout一开始接触时,各种不习惯,放到Layout里面管理的控件莫名其妙被缩小或者被拉伸,自己通过resize设置控件的大小也不管用,以及承载Layout的Widget也无法自己控制其大小。总之就是各种不习惯。
到后使用的多发现Qlayout里面有一个属性SizeConstraint,以及QWidget里面有个属性SizePolicy,QLayout就是差不多是通过这两个属性来控制控件和窗口的。sizepolicy只有Widget受layout管理时才有效,也就是将widget添加到Layout里面去。
这两个属性理解起来比较的蛋疼,我是这样理解的不知道对还是不对,SizeConstraint是Layout用来控制承载Widget的,而sizepolicy只是管理控件的。
对于SizeConstraintQt文档的说明看到有点蛋疼,我后面自己摸索理解的如下:
常量 描述
QLayout::SetMaximumSize设置承载Widget的MaximumSize为QLayout的MinimumSize。
QLayout::SetMinAndMaxSize设置承载Widget的MaximumSize和MinimumSize为QLayout的MinimumSize。
QLayout::SetNoConstraint不对承载Widget大小进行任何约束,也就是说承载Widget的属性都由自己管理。
对于sizepolicy 我的的理解是:
常量 描述
关于siziHint()是由Qt自己计算出来的,我们无法控制。当我们想控件大小由自己控制,不由Layout控制,
我们可以通过setFixedSize(const QSize &s)这个函数来设置控件的固定大小,设置完成之后控件的大小不会再被改变,除非我们又调用setFixedSize(const QSize &s)来设置。
当Layout的SizeConstraint设置为QLayout::SetFixedSize时,Layout的大小由控件的大小控制,因此控件的不会被Layout拉伸或者缩小,控件的大小为sizeHint()的值。
以上为我对QLayout的理解,可能会有理解不对,望大家帮我指出。
- 关于QT QLayout
- Qlayout
- 关于layout()->setSizeConstraint(QLayout::SetFixedSize)的问题
- qt QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout. 错误
- Qt学习——布局管理器QLayout类
- Qt学习——布局管理器QLayout类 .
- Qt中layout()->setSizeConstraint(QLayout::SetFixedSize);崩溃的问题
- Qt学习——布局管理器QLayout类
- QT-从QLayout中遍历出组件(Widget)
- Qt中layout()->setSizeConstraint(QLayout::SetFixedSize);崩溃的问题
- Qt提示:setLayout: Attempting to set QLayout "" on MainWindow "MainWindow", which already has a layout
- Qt:Attempting to add QLayout "" to MainWindow "", which already has a layout
- QT Widget::setLayout: Attempting to set QLayout “” on Widget “”, which already has a layout
- QT实现竖直方向的窗口布局(使用QLayout类)
- Qt中使用setLayout()函数时报错------Attempting to set QLayout "" on MainWindow "MainWindow",which already has
- QSizeploicy、 QLayout-setSizeConstrain
- QLayout之addStretch
- QLayout属性说明
- spring表单标签
- Android 自定义View——联系人右侧字母索引
- 最小生成树——kruskal
- HDU-1712 ACboy needs your help (分组背包 入门题)
- Asp.net报表ReportViewer设计(RDLC)
- 关于QT QLayout
- 学完《软件工程(C编码实践篇)》的心得体会
- linux mkdir函数创建指定权限的文件
- C#条件编译不按条件走
- onkeyup事件按Tab后失去焦点问题
- JAVA_编程小案例_拆解数字因子
- WEB.xml主要配置有哪些,,都有什么含义
- 向记录文件中写入数据
- Boring隧道掘进机完成首段挖掘,离未来交通还有多远?