我想弄清楚如何在QGraphicsView中看到的像素與QGraphicsItem在圖像中的實際像素之間的映射。例如,如果我的查看器是50x50並且圖像是100x100,那麼當圖像加載並且未被修改時,圖像的0,0像素對應於查看器的0,0像素。找出QGraphicsItem在QGraphicsView中可見的部分
現在,如果我將圖像拖到右側10像素,圖像左上角的0,0像素現在位於(10,0),並且我只能看到原始圖像的10-40列。另外,如果我縮放以縮小圖像,使QGraphicsView區域的圖像更小,圖像的0,0可能映射到10,0的查看器,但100,100的圖像可能只映射到40, 40,因爲我縮小了它。
我知道QGraphicsItem有很多映射函數,但我不確定如何檢測哪些部分是可見的,以及如何執行Item,Scene和View之間的映射。
感謝所有幫助
對於reference..so遠,這裏是啥子我曾嘗試: 獲取物件形狀 從現場使用視圖 得到邊界矩形形狀映射到現場 MAPE路徑,找到那
結束了使用類似下面的左上角:
QRect portRect = ui->graphicsView->viewport()->rect();
QRectF sceneRect = ui->graphicsView->mapToScene(portRect).boundingRect();
QRectF itemRect = item->mapRectFromScene(sceneRect);
QRectF isec = itemRect.intersected(item->boundingRect());
感謝朱棣文
你是否指portRect與itemRect的交集? – Derek 2011-01-22 16:32:20