【Qt】记录GraphicsView图形框架学习过程中遇到的问题,持续更新~

1. 使用setBackgroundBrush()方法设置场景背景颜色时,整个视口区域都会变成该颜色。

背景介绍:

  1. QGraphicsScene(场景)尺寸比QGraphicsView的视口尺寸小(具体可见下图)
  2. 在场景类 CLaserSceneVizScene 中设置了场景的背景色为灰色(gray)

我的猜想结果:
因为是对场景设置的背景,运行之前我猜测的效果是只有场景矩形区域(即200x200)部分为灰色,视口的其它区域还是保持默认色不变(默认是白色)。
实际我运行程序后,整个视口区域都变成了灰色,显示效果如下:
在这里插入图片描述
原因:

在Qt中,QGraphicsView 默认会填充整个视口区域,即便场景的实际大小小于视口大小

解决:

如果只想让场景的矩形区域改变背景色怎么办?

答:创建一个矩形图元,使其大小和场景大小一样大,然后设置该矩形图元的背景色即可,代码实现如下。

#include <QGraphicsRectItem>
#include "LaserSceneVizScene.h"
CLaserSceneVizScene::CLaserSceneVizScene()
{
    this->setSceneRect(0, 0, 200, 200);
    // 添加一个矩形项作为背景
    QGraphicsRectItem *background = new QGraphicsRectItem(0, 0, 200, 200);
    QBrush brush(Qt::gray);
    background->setBrush(brush);
    this->addItem(background);
}
CLaserSceneVizScene::~CLaserSceneVizScene()
{
}

运行效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

油炸自行车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值