QT实现QListWidget内拖拽item
yylistwidget.h
#ifndef YYLISTWIDGET_H
#define YYLISTWIDGET_H
#include <QWidget>
#include "QListWidget"
class YYListWidget : public QListWidget
{
Q_OBJECT
public:
explicit YYListWidget(QWidget *parent = Q_NULLPTR);
~YYListWidget();
void dropEvent(QDropEvent *event);
void performDrag();
signals:
public slots:
private:
};
#endif // YYLISTWIDGET_H
yylistwidget.cpp
#include "yylistwidget.h"
#include <QApplication>
#include <QDrag>
#include <QKeyEvent>
#include <QMimeData>
#include "QDebug"
YYListWidget::YYListWidget(QWidget *parent) : QListWidget(parent)
{
this->setAcceptDrops(true);
this->setDragEnabled(true);
}
YYListWidget::~YYListWidget()
{
}
// 接收放置后添加一项
void YYListWidget::dropEvent(QDropEvent *event)
{
qDebug()<<"dropEvent";
QListWidget::dropEvent(event);
performDrag();
//删除复制的
}
// 实现拖动,删除最开始的那个项
void YYListWidget::performDrag()
{
QListWidgetItem *item = this->takeItem(this->currentRow ());
delete item;
}
效果图
以上是简单的QListWidget内拖拽。
如果想要在自定义QListWidget内,拖拽带自定义widget的,可以下载
https://download.youkuaiyun.com/download/qq_41622002/12619649
效果图: