Qt图形视图框架:QGraphicsGridLayout

本文介绍了Qt中的QGraphicsGridLayout,它用于在图形视图框架中创建网格布局。QGraphicsGridLayout自动计算网格尺寸,并根据项目大小提示和策略进行布局。布局拥有项目所有权,处理了所有权冲突。成员函数包括添加、对齐、删除项目等,同时支持设置列和行的对齐方式。此外,还详细说明了尺寸调整和项目计数的相关方法。
摘要由CSDN通过智能技术生成

一、描述

图形视图框架网格布局。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)

删除布局项而不销毁它。项目的所有权转移给调用者。 

另有一些设置尺寸的函数,比较简单,根据名字可知用法,略过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值