C:\Users\PC\Desktop\Qtpro\imagedragdrop\mainwindow.cpp:68: error: cannot call member function 'void QDrag::setDragCursor(const QPixmap&, Qt::DropAction)' without object QDrag::setDragCursor(pixmap,Qt::MoveAction); ^
时间: 2024-03-22 21:41:23 浏览: 64
mainwindow.cpp
这个错误提示表示你需要先创建一个 QDrag 对象,然后调用 setDragCursor() 方法设置拖动时鼠标光标的图标和拖放操作的类型。
示例代码如下:
```cpp
QDrag *drag = new QDrag(this);
drag->setPixmap(pixmap);
drag->setHotSpot(event->pos() - child->pos()); // 设置拖动时鼠标光标的热点位置
drag->setDragCursor(pixmap, Qt::MoveAction); // 设置拖动时鼠标光标的图标和拖放操作类型
drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::MoveAction);
```
需要注意的是,创建 QDrag 对象后需要设置拖动时显示的图像和热点位置,才能正确显示拖动的效果。另外,setDragCursor() 方法只是设置鼠标光标的图标和拖放操作的类型,并不会直接执行拖放操作。执行拖放操作需要调用 QDrag::exec() 方法。
阅读全文