我已经子类化QGraphicsView有一些轮子事件,使它放大和缩小。当车轮滚动缩放功能被称为其缩放GraphicsView缩放一个QGraphicsView而不缩放已添加到它的QWidget
if(zoom_in)
{
factor = 2.0;
}
else
{
factor = 0.5;
}
this->scale(factor, factor);
这工作正常和规模是上被设置为graphicsview(这是我想要的功能)场景中的物品。
但是我也有一个QWidget添加到这个场景。该小部件应该基本上是QGraphicsView的背景,它具有相同的尺寸,并调整大小以适应视图调整大小时的视图。
林知道,你可以设置忽略的翻译就行了这
proxyWidget = this->scene()->addWidget(myBackgroundWidget);
proxyWidget->setFlag(QGraphicsItem::ItemIgnoresTransformations);
所以当视图缩放控件并没有改变大小,这是正确的,但它确实动了某些原因,它上移在缩小时向左和向右缩放。
我不知道为什么发生这种情况在所有的,因为如果只是删除ItemIgnoresTransformations
标志和放大和缩小它在屏幕上,但改变大小的中心,这显然不是我想要的完美仍然
如果任何人都可以在这一点上,我将不胜感激
需要缩放的所有东西都放在一个QGraphicsItem组中,但是它们本身不应缩放,它们都放置在场景中,我只希望场景缩放,即物品保持相同的大小,但它们的布局是缩放的。它们是图像上的标记,所以我希望标记具有相同的大小,但场景需要缩放,否则它们都保持同一个缩放级别的相同布局。 – AngryDuck