如何在没有鼠标点击qt的情况下平移图像

时间:2014-04-26 16:24:55

标签: c++ image qt

我在Qt Creator中有一个程序,在这个程序中有一张在组合框中选择的四种效果(放大,缩小,向左平移和向右平移)的照片。这些效果中的每一个都可以应用于图像。我已经实现了放大和缩小效果但是如果在组合框中选择了向左或向右平移效果时如何向左或向右实现平移效果?实际上我的问题很简单:当在组合框中选择向左或向右平移效果时,如何实现向右或向左平移图片的功能(没有鼠标点击图片)?

this link中,您可以看到更多详细信息。

有人想帮忙吗?

1 个答案:

答案 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