Qt的Graphics/View框架学习

Graphics/View框架被用来存放、显示二维图形元素,处理对图形元素进行操作的交互指令。(例如,可以使用鼠标和键盘与场景中的项目进行交互。 QGraphicsView将鼠标和按键事件转化为场景事件,并转发到可视化的场景中。)

该框架主要包括三个类:QGraphicsScene(场景)、QGraphicsView(视图)、QGraphicsItem(图元)。

QGraphicsItem表示被显示的图形元素 

QGraphicsScene表示囊括了所有图形元素的场景。该类只表示一个场景由哪些图形元素组成,并不负责显示其中的元素。一个场景分为三个层:图元层、前景层和背景层。场景的绘制总是从背景层开始,然后是图形项层,最后是前景层。 

QGraphicsView在可滚动视口中可视化一个场景中的部分或者全部图形元素。一个场景可以对应多个QGraphicsView对象,以显示一个场景的不同区域,或者以不同的方式来显示该场景。默认情况下,在第一次显示视图时会自动检测可视化区域(通过调用 QGraphicsScene::itemsBoundingRect())。要自己设置可视化区域矩形,可以调用 setSceneRect()。这将适当地调整滚动条的范围。请注意,尽管场景支持几乎无限大小,但滚动条的范围不会超过整数范围(INT_MIN、INT_MAX)。 

Qt图形视图框架:QGraphicsView 详解_友善啊,朋友的博客-CSDN博客

使用步骤:

1、创建场景

2、创建图元对象

3、使用场景的add函数将图元对象加入场景中

4、通过视图进行显示

示例代码:

QGraphicsScene *p_scene = new QGraphicsScene(this);
QGraphicsEllipseItem *ellip = new QGraphicsEllipseItem(1, 2, 800, 400, 0);
QGraphicsRectItem *rect = new QGraphicsRectItem(1, 2, 800, 400, 0);
if (p_scene != nullptr) {
    p_scene->addText("33333333");
    p_scene->addItem(ellip);
    p_scene->addItem(rect);
    p_scene->itemAt(100, 100, QTransform());
    ui->graphicsView->setScene(p_scene);
    ui->graphicsView->show();
}

参考博文:QT学习之视图框架下的简单的碰撞检测_qt碰撞检测_我不是萧海哇~~~~的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值