1

我有一个堆叠的小部件,上面有一个 QLabel。我在此标签上显示图像。我想缩放和平移这个图像,我正在尝试使用 QGraphicsView 技术。但是会打开一个新窗口。这就是我正在做的事情。

 scene = new QGraphicsScene(this);
 view = new QGraphicsView(this);
 QPixmap pix("/root/Image);
 label->setPixmap(pix);
 scene->addWidget(label);
 view->setScene(scene);
 view->setDragMode(QGraphicsView::scrollHandDrag);
 view->show();

有人可以建议我该怎么做。我希望标签的行为类似于 QGraphicsView。

谢谢你 :)

4

1 回答 1

3

您创建一个场景和视图并将标签添加到场景中,然后告诉视图显示自己: -

view->show()

如果,正如您所说,您想要标签上的 QGraphicsView,不要将标签添加到场景中,而是将 QGraphicsView 添加到标签:-

QLabel* pLabel = new QLabel(mainWindow); // setting mainWindow as the parent
QGraphicsView* pView = new QGraphicsView(pLabel) // set the label as the parent of the view.

您不需要调用 show,因为标签会为您处理,假设标签位于已显示的 Widget 上。

现在,不是在标签上设置像素图,而是在场景中创建一个像素图: -

pScene->addPixmap(pixmap);
于 2013-10-18T11:01:37.787 回答