使用QDrag类实现拖放功能
拖放是现代UI设计必不可少的功能之一,它可以使用户在应用程序间快速、轻松地交换数据。在Qt中,QDrag类是实现拖放功能的关键类。
QDrag类提供了一个拖动对象的概念,它代表了我们想要拖拽的一些数据或类型。当我们将一个QDrag对象放置在目标控件上时,目标控件可以从QDrag对象中获取我们传输的数据。
下面是一个简单的例子,演示了如何在Qt中使用QDrag类实现拖放功能:
#include <QDrag>
#include <QMimeData>
#include <QWidget>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr)
: QWidget(parent)
{
setAcceptDrops(true);
}
protected:
void mousePressEvent(QMouseEvent *event) override
{
if (event->button() == Qt::LeftButton)
startPos = event->pos();
}
void mouseMoveEvent(QMouseEvent *event) override
{
if (!(event->buttons() & Q