我有一个堆叠的小部件,我有一个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。
谢谢你:)
答案 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);