Qt 中QListWidget 实现控件内拖拽
开发一款软件,使用到列表的拖拽功能,这样操作比较人性化。网上找了一圈,还有两个QListWidget控件之间拖拽的例子。先实现控件内拖拽。
这个功能在网上找了半天,没个Down下来可能直接用的,把自己修改过的放到这里。只贴.h和.cpp文件。样式还不够好看,后期再升级吧。
draglistwidget.h
#ifndef DRAGLISTWIDGET_H
#define DRAGLISTWIDGET_H
#include <QWidget>
#include <QListWidget>
#include <QPoint>
#include <QListWidgetItem>
class DragListWidget : public QListWidget
{
Q_OBJECT
public:
explicit DragListWidget(QWidget *parent = Q_NULLPTR);
~DragListWidget();
private:
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dropEvent(QDropEvent *event);
QPoint startPos;
QPoint endPos;
QMimeData* mimeData;
};
#endif // DRAGLISTWIDGET_H
draglistwidget.cpp