Qt图形视图框架:QGraphicsGridLayout
一、描述
图形视图框架网格布局。QGraphicsGridLayout 在添加项目时自动计算网格的尺寸。
QGraphicsWidget *textEdit = gphs->addWidget(new QTextEdit);
QGraphicsWidget *pushButton = gphs->addWidget(new QPushButton("确定"));
QGraphicsGridLayout *layout = new QGraphicsGridLayout;
layout->addItem(textEdit, 0, 0);
layout->addItem(pushButton, 0, 1);
QGraphicsWidget *form = new QGraphicsWidget;
form->setLayout(layout);
gphs->addItem(form);
布局拥有项目的所有权。某些情况下,当布局项也继承自 QGraphicsItem(例如 QGraphicsWidget)时,所有权会产生歧义,因为布局项属于两个所有权层次结构。处理方式见:QGraphicsLayoutItem的第7个函数。
1.1、尺寸提示和尺寸策略
QGraphicsGridLayout “尊重”每个项目的大小提示和大小策略,并且当网格中的单元格的空间 > 项目可以填充的空间时,每个项目将根据该项目的布局对齐方式排列。
二、部分成员函数
1、void addItem(QGraphicsLayoutItem *item, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
添加项目到网格,指定对齐方式。rowSpan和columnSpan为项目所占行列数。
2、void addItem(QGraphicsLayoutItem *item, int row, int column, Qt::Alignment alignment = Qt::Alignment())
添加项目,项目占1行1列。
3、Qt::Alignment alignment(QGraphicsLayoutItem *item) / void setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment)
获取/设置项目对齐方式。
4、void setColumnAlignment(int column, Qt::Alignment alignment) / Qt::Alignment columnAlignment(int column)
设置/获取整列的对齐方式。也有设置/获取整行对齐方式的函数。
5、int columnCount()
返回网格布局中的列数(除了最后的列之外,中间空列也被计算在内)。rowCount()类似。
6、int count()
获取布局中的项目数。
7、void removeAt(int index) / void removeItem(QGraphicsLayoutItem *item)
删除布局项而不销毁它。项目的所有权转移给调用者。
另有一些设置尺寸的函数,比较简单,根据名字可知用法,略过。
上一篇: 凑硬币方案数问题
下一篇: 硬币找零问题(动态规划)
推荐阅读
-
Qt图形视图框架(四) Item之间的关系
-
QT图形视图框架
-
Qt图形视图框架(五) 变换
-
Qt图形视图框架(三) 自定义QGraphicsItem
-
Qt图形视图框架:QGraphicsGridLayout
-
Qt图形视图框架:QGraphicsAnchorLayout
-
Qt之图形视图框架
-
我选择 wxWidgets 而不是 Qt 作为图形用户界面框架的一些想法 Qt框架VC++MFCDelphi
-
我选择 wxWidgets 而不是 Qt 作为图形用户界面框架的一些想法 Qt框架VC++MFCDelphi
-
C++图形用户界面开发框架Qt 6.x入门级教程 - QML 应用程序 C++Qt图形界面