Qt:无法设置拖动模式
Qt: Can't set drag mode
我已经被这个问题困扰了一段时间,现在我正试图将QGraphicsView的拖动模式设置为ScrollHandDrag
,以便在我的应用程序上构建平移功能。
然而,每当我尝试设置拖动模式时,Qt总是抱怨DragMode
是一个未声明的标识符。
我还打算建立一个裁剪功能(我想我会使用橡皮筋拖动吗?),我只是想知道为什么我不能在View 上设置拖动模式
void MainWindow::on_btnCrop_clicked()
{
cropping = true;
QApplication::setOverrideCursor(Qt::CrossCursor);
// Stuck with this...
ui->imageView->setDragMode(ScrollHandDrag);
}
^我已经尝试了多种其他解决方案,但还没有找到任何解决方案,任何建议都将不胜感激。
这不是特定于QGraphicsView
的问题,而是通用C++。您的问题位于以下行:
ui->imageView->setDragMode(ScrollHandDrag);
问题是,您假设您可以看到ScrollHandDrag值,而它显示在QGraphicsView
范围内。因此,由于您正试图在MainWindow
中访问该值,因此需要按如下方式显式添加作用域:
ui->imageView->setDragMode(QGraphicsView::ScrollHandDrag);
请注意,即使是文档也会指定这个常量的范围:
QGraphicsView::ScrollHandDrag 1光标变为指针,拖动鼠标将滚动滚动条。此模式可在交互式和非交互式模式下工作。
这是我的最低建筑代码:
#include <QGraphicsView>
int main()
{
QGraphicsView graphicsView;
graphicsView.setDragMode(QGraphicsView::ScrollHandDrag);
return 0;
}
main.pro
TEMPLATE = app
TARGET = main
QT += widgets
SOURCES += main.cpp
构建并运行
qmake && make
相关文章:
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 如何在鼠标挂钩过程中检测拖动
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件
- 如何防止特定的QTreeView分支被拖动?
- 通过拖动边框调整大小时不显示SDL_WINDOWEVENT_SIZE_CHANGED?
- 在 qt 中的绘图中拖动误差线
- 非拖动功能模板参数包的合法使用
- QML在被Mousearea拖动时无法更改项目位置
- 在OpenGL中,如何将鼠标跟随更改为鼠标单击,拖动并移动释放?
- 如何在 Win32 应用中拖动纯色矩形,而不会产生白色闪烁,也不会干扰其他屏幕对象
- 图形项目的QgraphicsScene中的可拖动像素
- Qt - 防止在拖动标题栏时调整窗口大小
- 在内部使用ComboBox拖动ListWidget项目
- 使用C 绘制矩形拖动
- 在 QGraphicsScene 中拖动 QPixmap:如何避免 lambda 参数中不允许'auto'
- 如何在QT中拖动未装饰的窗口
- 有没有办法在Qt中以编程方式中断鼠标拖动
- Qt - 拖动移动 q图形项不能很好地工作
- Qt:无法设置拖动模式
- QT自定义鼠标事件和拖动模式