我已经坚持了一段时间了,我正在尝试将QGraphicsView的拖动模式设置为ScrollHandDrag
,以便我可以在我的应用程序上构建平移功能。
然而,每当我尝试设置拖动模式时,Qt总是抱怨DragMode
是未声明的标识符。
我也打算建立一个裁剪功能(我假设我会使用橡皮筋拖动吗?),我只是想知道为什么我不能在视图上设置拖动模式
void MainWindow::on_btnCrop_clicked()
{
cropping = true;
QApplication::setOverrideCursor(Qt::CrossCursor);
// Stuck with this...
ui->imageView->setDragMode(ScrollHandDrag);
}
^我尝试了多种其他解决方法,但我还没有找到任何解决方案,我们将非常感谢任何建议。
答案 0 :(得分:1)
这不是QGraphicsView
特定的问题,而是通用的C ++。您的问题位于此行:
ui->imageView->setDragMode(ScrollHandDrag);
问题是您假设您可以看到ScrollHandDrag值,而它显示在QGraphicsView
范围内。因此,由于您尝试在MainWindow
中访问该值,因此您需要明确添加范围,如下所示:
ui->imageView->setDragMode(QGraphicsView::ScrollHandDrag);
请注意,即使documentation指定了此常量的范围:
QGraphicsView :: ScrollHandDrag 1光标变为指针,拖动鼠标将滚动滚动条。此模式适用于交互式和非交互式模式。
这是我的最小建筑代码:
#include <QGraphicsView>
int main()
{
QGraphicsView graphicsView;
graphicsView.setDragMode(QGraphicsView::ScrollHandDrag);
return 0;
}
TEMPLATE = app
TARGET = main
QT += widgets
SOURCES += main.cpp
qmake && make