Qt图形视图框架:QGraphicsLinearLayout
一、描述
图形视图框架线性布局。
一般用法:
QGraphicsScene scene;
QGraphicsWidget *textEdit = scene.addWidget(new QTextEdit);
QGraphicsWidget *pushButton = scene.addWidget(new QPushButton);
QGraphicsLinearLayout *layout = new QGraphicsLinearLayout;
layout->addItem(textEdit);
layout->addItem(pushButton);
QGraphicsWidget *form = new QGraphicsWidget;
form->setLayout(layout);
scene.addItem(form);
您可以将小部件、布局、拉伸(addStretch()、insertStretch() 或 setStretchFactor())和间距 (setItemSpacing()) 添加到线性布局。布局拥有项目的所有权。
1.1、尺寸提示和尺寸策略
QGraphicsLinearLayout “尊重”每个项目的大小提示和大小策略,并且当布局中的空间 > 项目可以填充的空间时,每个项目将根据该项目的布局对齐方式排列。
1.2、间距
在项目之间,布局分配了一些空间。常用的间距是4。也可以调用setSpacing()设置间距。
1.3、拉伸因子
可以为每个项目分配一个拉伸因子,以控制与其他项目相比它将获得多少空间。 默认情况下,以线性布局排列的两个相同小部件将具有相同的大小,但如果第一个小部件的拉伸因子为 1,第二个小部件的拉伸因子为 2,则第一个小部件将获得可用空间的 1/3 空间,第二个将获得 2/3。
二、成员函数
1、void insertItem(int index, QGraphicsLayoutItem *item)
将项目插入布局中的索引处。
2、void addItem(QGraphicsLayoutItem *item)
相对于调用insertItem(-1, item)。
3、void insertStretch(int index, int stretch = 1)
在索引处插入一段拉伸。
4、void addStretch(int stretch = 1)
相对于调用insertStretch(-1, stretch)。
5、void setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment)
设置项目在布局中的对齐方式。
6、void setItemSpacing(int index, qreal spacing)
将索引处项目后的间距设置为spacing。
7、void setSpacing(qreal spacing)
将布局的间距设置为间距。间距是指项目之间的垂直和水平距离。
8、void setStretchFactor(QGraphicsLayoutItem *item, int stretch)
设置要拉伸的项目的拉伸系数。将拉伸设置为 0 会从项目中删除拉伸因子。
上一篇: python 定义类的方法理解一
下一篇: Qt深入浅出(十四)图形视图框架