好吧,我基本上有一個圖形場景隨機放置的圖形項目。我打開一個窗口並顯示這些項目。當我調整窗口大小時,我希望這些項目保持相同的大小,但重新定位與窗口大小成比例。我如何做到這一點是我subclassed圖形視圖,然後當有一個resize事件,它發送resize對象到我的graphicsscene對象。當時我能夠做這樣的事情:在窗口調整大小的圖形項目resize
double scaleX = double(event->size().width())/double(event->oldSize().width());
double scaleY = double(event->size().height())/double(event->oldSize().height());
然後我用這些值來做到這一點:
derivedPointItem->setPos(derivedPointItem->pos().x() * scaleX,
derivedPointItem->pos().y() * scaleY);
該工程確定,但如果我調整窗口的大小非常小的是不完全正確或大。我認爲問題是,graphicsscene矩形和圖形視圖矩形是不一樣的或什麼的。此外,我有一個調整窗口大小的背景:
void roiwindow::drawBackground(QPainter* painter, const QRectF& rect)
{
this->setSceneRect(0,0,rect.width(),rect.height());
painter->save();
painter->drawImage(rect, *refimage);
painter->restore();
}
這是我在編寫程序時需要的東西。另外,它允許我查看調整大小是否工作。我基本上可以將背景設置爲多邊形,然後將點放置在多邊形的邊上。當我調整圖像的大小時,點不再位於多邊形的頂點,儘管它們有點接近。任何人都知道有更好的方法來做到這一點或解決它的方法嗎?謝謝。
編輯:這是我的工作項目:
dropbox.com/s/myxi8kvdl7x9ye2/ncorr.tar.gz
以下是我正在研究的項目:「https://www.dropbox.com/s/myxi8kvdl7x9ye2/ncorr.tar.gz」另外,我的意思是將其位置按比例重新定位到窗口大小。但是,項目本身的大小將保持不變。希望這可以解決問題。謝謝。另外,要使用該程序只需執行file> upload reference,然後單擊「set roi」。調整窗口大小,你會明白我的意思。 – Justin
還有一件事。我基本上只是試圖從matlab重新創建impoly。另外,我一直在ubuntu上做這個,希望它適用於你使用的任何系統......廢話,還有一件事。關閉roi只需點擊右鍵。 – Justin