我試圖創建一個Dicom GUI工具包,用戶選擇一些dicom圖像,並從選定的圖像中顯示第一個dicom圖像。然後用戶點擊圖像,圖像彈出並顯示更大的圖像窗口。在這張較大的圖像中,圖像將由一個紅色的矩形組成,該矩形包含Dicom圖像的必要區域,而不必要的區域位於矩形的外部。用戶應該可以選擇通過鼠標改變矩形。以交互方式編輯QPixmap上的現有矩形?
到現在爲止,我已經能夠使用QLabel
來顯示其中的矩形的大dicom圖像,它由以下代碼片段組成。
void MainWindow::showBigImage()
{
QPixmap bigimage;
bigimage.load(imageName.c_str());
QPainter painter(&bigimage);
painter.setPen(Qt::red);
QRectF rect(xmin, ymin, xmax, ymax);
painter.drawRect(rect);
QSize bigsize = ui->bigImageLabel->size();
ui->bigImageLabel->setPixmap(bigimage.scaled(bigsize, Qt::IgnoreAspectRatio, Qt::FastTransformation));
ui->bigImageLabel->show();
}
,並在應用程序中的大圖如下所示:
你可以請建議我如何把現在做的長方形編輯用戶,用戶可以設置現有的紅色長方形是否符合他或她的願望?
我使用QGraphicsView
和QGraphicsScene
用下面的代碼也試過類似的事情:
void MainWindow::showBigImage()
{
QGraphicsScene* scene = new QGraphicsScene;
scene->addPixmap(bigimage);
ui->bigImageView->setScene(scene);
ui->bigImageView->show();
}
而且這個代碼給我下面的樣子:
正如你所看到的,我可以不符合QGraphicsView
的邊界圖像,你能建議我該怎麼做嗎?你能否也建議我如何在QGraphicsView
上添加紅色矩形(我在示例中使用QLabel
顯示),而不在QPixmap
上添加矩形?
要適合一個窗口,你可能想看到: http://stackoverflow.com/questions/9654222/how-to-fit-in-view-the-pixmaps-in-q-graphicsview-qgraphicsscene-without-changing – user2244507
我之前看到過這個問題,我無法理解如何重新實現resizeEvent。我必須提及,我是Qt的新手,並且遠離C++的效率。 –