2011-05-07 22 views
3

問候,Qt在現場/視圖的中心添加項目

我想添加一個QGraphicsItem完全在當前屏幕的中心。
我的QGraphicsScene非常大(10k X 10K),所以QGraphicsView無法完全顯示它,有滾動條。

我找不到任何函數返回我當前屏幕的矩形,我搜索了所有QGraphicsScene和QGraphicsView函數。
有返回場景矩形的函數(它返回一個矩形10k X 10k但它沒用),並且有函數返回鼠標位置,但是我需要移動我的鼠標並單擊一個菜單,這樣鼠標將不再在場景內,並且該項目將在可見空間外生成...

非常感謝。

回答

5

您應該將視口的左上角(0,0)映射到場景。寬度&高度等於視口的直徑寬度&高度。

爲了得到當前屏幕的矩形試試這個,:

QRect exposedRect(graphicsView.mapToScene(0,0).toPoint(), graphicsView.viewport()->rect().size()); 

我想你可以從這裏處理。

+0

問候並感謝您的回答。 不幸的是它不起作用。我嘗試了graphicsView.viewport()。pos()和graphicsView.viewport() - > rect().center(),這就是我需要在場景中定位我的物品,但它不會把它們放在中央。我試過AnchorViewCenter,它仍然沒有定位他們賴特... – 2011-05-09 06:39:05

+2

@克里斯蒂康斯坦丁:你有沒有嘗試過graphicsView.mapToScene(graphicsView。),你有沒有試過graphicsView.mapToScene(graphicsView。 viewport() - > rect()。center())來獲取當前屏幕的中心點,這應該可以完成這項工作。 – zkunov 2011-05-09 19:55:18

+0

謝謝!這是解決方案,我做錯了。 – 2011-05-10 05:49:48

相關問題