2010-12-06 357 views
0

我想要使用QGraphicsView來顯示地圖圖像並在其上繪製一些項目。地圖邊界處於笛卡爾座標系中,例如NE(-500,200)至SW(600,-350)。我知道如何映射圖像像素< - >我的座標系。使用QGraphicsView來顯示本地地圖

我會實現以下目標:

  1. 的地圖圖像添加到場景中,並告訴Qt的如何實際圖像像素場景座標映射。
  2. 在其真實位置添加圖形項目,例如, (-100,200)

做(2)很簡單 - 只需將項目添加到現場即可。我如何實現(1)?在我調用scene-> addPixmap()之後應該怎麼做?

編輯 - 一些澄清:

  • 我映射的幾百米的室內區域
  • 的地圖將實時在兩個方面改變:
    • 的地圖每隔幾秒變大
    • 圖形項移動,改變顏色等

回答

2
  1. 把像素映射到一個QGraphicsPixmapItem並將其放置在場景中。
  2. 致電setScale()將QGraphicsPixmapItem映射爲1米地圖到場景座標中的1個單位。即。 setScale(0.1)如果像素圖中的10個像素等於1米。
  3. 根據需要更新項目的像素圖和比例。
  4. 致電fitInView()放大到像素圖。
  5. 在場景中放置其他圖形項目。將場景座標的單位視爲米。
  6. ...
  7. 利潤! :)
+0

謝謝!它的作品,但我不知道fitInView()部分 - 圖像被拉伸,看起來扭曲。 – kshahar 2010-12-06 21:06:39