将QGraphicsView和QGraphicsScene添加到Qt中的标签

时间:2013-10-18 10:43:16

标签: qt qgraphicsview

我有一个堆叠的小部件,我有一个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。

谢谢你:)

1 个答案:

答案 0 :(得分: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);