我正在使用圖形視圖框架將運行時項目添加到視圖中。項目將像垂直佈局一樣放置在另一個之下。QGraphicsView在調整大小時的項目位置邊距
我總是把我的物品放在場景的開始位置(10,10)。但在調整觀點的同時,保證金也在調整。每次查看窗口大小時如何保持相同的邊距?
我用Google搜索,發現
QTransform Matrix(1, 0, 0, 0, 1, 0, 0, 0, 1);
Matrix.scale(width()/sceneRect().width(), height()/sceneRect().height())
setTransform(Matrix);
有助於恢復保證金,但它也縮小基於視圖高度比的項目。
即使視圖控件縮小或展開,我也一直希望保持相同的項目大小。滾動條必須出現。
感謝您的明確回覆。是的,我只將項目添加到場景中。說場景座標是(0,0,1000,1000),我把這個項目放在QPoint(18,12)上以保持空白的差距。但是當我調整視圖窗口的大小時,這些邊界正在增加。我添加的代碼行將有助於維持保證金,但也縮放該項目,但我不得不忽略項目收縮。 – Wagmare
我必須親自編寫代碼才能確定,但如果您檢查這些轉換矩陣值,我認爲您會發現在調整視圖大小時縮放因子(m11和m22)保持不變。我想你需要繼承QGraphicsView並覆蓋resizeEvent,然後在那裏重新設置QGraphicsView的比例因子。 – goug
當然我會做它goug ..非常感謝你。我會根據您的建議更新並在此回覆您。 – Wagmare