一、布局管理器
1.实例:窗体最小分辨率为400*400,窗体上放置两个文本输入框, QTextEdit
横向均分两个文本输入框。使用代码来实现上述功能。
使用UI编辑器布局来改进界面不足。
2.布局管理器
手工布局(适用于测试某个小功能):
简单快捷,但不能做到自适应窗口,需要自己计算窗口位置和大小
布局管理器布局(适用于项目开发):
1.子部件的定位
2.窗口的合理默认空间
3.窗口的合理最小空间
4.窗口自适应管理
5.字体大小或者内容变化
详见帮助文档:Layout Management
布局的类关系:
QLayout
-----------------------------------------------------------------
QBoxLayout QGridLayout QStackedLayout
-----------------------------------------------------------------
QHBoxLayout QVBoxLayout
-----------------------------------------------------------------
margin:代表布局和外围窗体之间的间隔
left top right bottom
spacing:代表布局内部件之间的间隔
stretch:代表布局内部件的占比
如果使用ui编辑器增加空白占比,需要增加spacer部件,
然后设置它的占比。
3.QHBoxLayout:水平布局
继承自QBoxLayout
构造函数: QHBoxLayout(QWidget * parent)
继承常用方法:
QHBoxLayout(QWidget * parent)
在parent部件上增加QHBoxLayout布局
void addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = 0)
布局上加部件
void addLayout(QLayout *layout, int stretch = 0)
布局上加布局
void QBoxLayout::addStretch(int stretch = 0)
在布局中增加自适应的空白
void QBoxLayout::setStretch(int index, int stretch)
设置自适应比例空白
void QBoxLayout::addSpacing(int size)
在布局中增加size像素的空白
void QBoxLayout::setMargin(int margin)
设置布局和外围窗体之间的空白距离
4.实例:根据设计图,完成双向进度条显示部件,要求界面可自适应,
界面基础大小为300*50。
进度条样式参考:
```cpp
#define PROGRESS_LEFT_STYLE (QString(""\
"QProgressBar {"\
"background-color: #dbdee0;"\
"border-right:1px solid #00ff00"\
""\
"}"\
"QProgressBar::chunk {"\
"background-color: #FF5500" "}"))
#define PROGRESS_RIGHT_STYLE (QString(""\
"QProgressBar {"\
"background-color: #dbdee0;"\
"border-left:1px solid #00ff00"\
""\
"}"\
"QProgressBar::chunk {"\
"background-color: #FF5500" "}"))
用法:
leftBar->setStyleSheet(PROGRESS_LEFT_STYLE);
rightBar->setStyleSheet(PROGRESS_RIGHT_STYLE);
进度条无法自适应高度请参考sizePolicy属性帮助文档解决。
6.QT布局使用
猜你喜欢
转载自blog.csdn.net/qq_40083589/article/details/94025712
今日推荐
周排行