我在Qt Creator中有一个程序,在这个程序中有一张在组合框中选择的四种效果(放大,缩小,向左平移和向右平移)的照片。这些效果中的每一个都可以应用于图像。我已经实现了放大和缩小效果但是如果在组合框中选择了向左或向右平移效果时如何向左或向右实现平移效果?实际上我的问题很简单:当在组合框中选择向左或向右平移效果时,如何实现向右或向左平移图片的功能(没有鼠标点击图片)?
在this link中,您可以看到更多详细信息。
有人想帮忙吗?
答案 0 :(得分:0)
如果您使用QLabel
来显示图片:
您可以将图片放在QScrollArea
中。 QScrollArea
类为另一个小部件提供滚动视图。您可以通过将位置设置为水平和垂直滚动条来滚动QScrollArea
内容。
QLabel *imageLabel = new QLabel;
QImage image("SomeImage.png");
imageLabel->setPixmap(QPixmap::fromImage(image));
scrollArea = new QScrollArea;
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setWidget(imageLabel);
scrollArea->horizontalScrollBar()->setValue(100); // Panning to right
scrollArea->horizontalScrollBar()->setValue(0); // Panning to left
如果您使用QGraphicsView
:
QGraphicsView *graphicsView = new QGraphicsView(parent);
QScrollBar* scrollbar=graphicsView->horizontalScrollBar();
scrollbar->setValue(100); // Panning to right
scrollbar->setValue(0); // Panning to left