QGraphicsView/QGraphicsScene 渲染问题

Posted

技术标签:

【中文标题】QGraphicsView/QGraphicsScene 渲染问题【英文标题】:QGraphicsView/QGraphicsScene rendering question 【发布时间】:2010-07-01 12:34:08 【问题描述】:

我在我的应用程序中使用 QGraphicsScene/QGraphicsView 对。 为了我的目的,我对它们进行了子类化。生成对的代码 sn-p 如下:

itsScene = new QGraphicsScene;
itsView = new QGraphicsView;
itsView->setParent(itsCanvas);

itsView->setGeometry(20,20,1700,720);
itsView->setBackgroundBrush(Qt::black);
itsView->setAlignment(Qt::AlignTop);
itsView->setScene(itsScene);

将一些小部件添加到 QGraphicsScene 后,我的应用程序最终 UI 快照如下: 这里我的问题是为什么图片上方有一些空闲空间?什么可能导致这种情况? 我正在为我的小部件使用一些负坐标。跟这个有关系吗?

【问题讨论】:

【参考方案1】:

负坐标可能是原因。 QGraphicsScene 通过组合其中所有项目的边界来计算其边界矩形。

如果您知道您的场景边界,请致电setSceneRect 将其修复为已知的矩形。这样,放置在边界之外的图形项目不会导致场景扩展超出您想要的范围。

【讨论】:

以上是关于QGraphicsView/QGraphicsScene 渲染问题的主要内容,如果未能解决你的问题,请参考以下文章