#ifndef DRAGABLETABLE_H #define DRAGABLETABLE_H #include #include "Common/BaseViewEx/tableviewex.h" class DragableTable : public TableViewEx { Q_OBJECT public: explicit DragableTable(QWidget *parent = nullptr); private: // 某行之下或之上 void SetDragTargetRow(int nRow, bool bIsUpOn = true); protected: virtual void mouseMoveEvent(QMouseEvent *event) override; virtual void mousePressEvent(QMouseEvent *event) override; virtual void mouseReleaseEvent(QMouseEvent *event) override; virtual void dragMoveEvent(QDragMoveEvent *event) override; virtual void dragEnterEvent(QDragEnterEvent *event) override; virtual void dropEvent(QDropEvent *event) override; signals: void SignalDrop(int nSourceRow, int nTargetRow); private: QModelIndex m_indexPressed; // 该table对象唯一标识符(不允许从一个table拖拽到另一个) QUuid m_UUID; // 是否允许拖拽 bool m_bDragEnable; // 目标行 int m_nTargetRow; bool m_bIsUpon; }; #endif // DRAGABLETABLE_H