我已經子類化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