gpt4 book ai didi

qt - 当 QGraphicsScene 中的宽度减小到 200 以下时 x,y 点移动

转载 作者:行者123 更新时间:2023-12-04 05:56:02 27 4
gpt4 key购买 nike

我创建了一个 QGraphicsScene

scene = new QGraphicsScene(0,0,200,200);

并画一条线 scene.addLine(0,0,100,100,pen);我从(0,0)到(100,100)正确绘制了这条线。

当我将代码更改为
scene = new QGraphicsScene(0,0,150,200);

并画同一条线 scene.addLine(0,0,100,100,pen);,它的 x,y 点向右移动 50 个像素。为什么会发生这种情况?如何避免这种情况?

最佳答案

默认情况下,场景矩形在 QGraphicsView 中居中。当它小于 View 时。

您可以使用 QGraphicsView::setAlignment改变这一点。

由于 View 首选大小,返回 QGraphicsView::sizeHint()也是场景大小,您可以调整 View 以完全适合场景:

view->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);

它告诉布局只使用 sizeHint()计算小部件的大小。
或者,如果 View 不在布局内,则必须使用
view->setFixedSize(view->sizeHint()); 

每次更改场景矩形大小时。

关于qt - 当 QGraphicsScene 中的宽度减小到 200 以下时 x,y 点移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9500571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com