2010-08-18 121 views
5

我想在它的全景使用QGraphicsScene顯示圖片。但是當我把QgraphicsScene放在QGraphicsView中時,我得到一個滾動條。我嘗試了很多方法,但都是去靜脈。那麼有人可以告訴我如何在沒有滾動條的情況下獲得完整的視圖。Qt - QGraphicsView無滾動條

回答

5
QGraphicsView v; 
v.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
v.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 

要以編程方式調整滾動,一旦隱藏這些滾動,請使用v.ensureVisible()的重載之一。

8

您可能會看到滾動條,因爲場景大於圖形視圖中的可用區域。默認情況下,QGraphicsView帶有1像素的邊距。爲了解決這個問題,你可以嘗試:

QRect rcontent = graphicsView.contentsRect(); 
graphicsView.setSceneRect(0, 0, rcontent.width(), rcontent.height()); 

我已經得到滾動條,因爲我是手動設置現場RECT到圖形項目我添加的大小 - 這是作爲的QGraphicsView小部件一樣大。我沒有考慮到保證金。

+0

有沒有辦法只禁用1像素的邊距?你的代碼爲我解決了這個問題,但它仍然看起來像是一個明顯的錯誤修正。 – Trilarion 2014-04-04 10:47:33

+1

不是;該邊界在'fitInView'中被硬編碼(見QTBUG-11945)。擺脫它的唯一方法是編寫自己的'fitInView'。已經有一些討論通過API公開了這個保證金,但是還沒有將它變成任何Qt版本。 – AndrewS 2014-04-04 15:25:39