dragabletable.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef DRAGABLETABLE_H
  2. #define DRAGABLETABLE_H
  3. #include <QUuid>
  4. #include "Common/BaseViewEx/tableviewex.h"
  5. class DragableTable : public TableViewEx
  6. {
  7. Q_OBJECT
  8. public:
  9. explicit DragableTable(QWidget *parent = nullptr);
  10. private:
  11. // 某行之下或之上
  12. void SetDragTargetRow(int nRow, bool bIsUpOn = true);
  13. protected:
  14. virtual void mouseMoveEvent(QMouseEvent *event) override;
  15. virtual void mousePressEvent(QMouseEvent *event) override;
  16. virtual void mouseReleaseEvent(QMouseEvent *event) override;
  17. virtual void dragMoveEvent(QDragMoveEvent *event) override;
  18. virtual void dragEnterEvent(QDragEnterEvent *event) override;
  19. virtual void dropEvent(QDropEvent *event) override;
  20. signals:
  21. void SignalDrop(int nSourceRow, int nTargetRow);
  22. private:
  23. QModelIndex m_indexPressed;
  24. // 该table对象唯一标识符(不允许从一个table拖拽到另一个)
  25. QUuid m_UUID;
  26. // 是否允许拖拽
  27. bool m_bDragEnable;
  28. // 目标行
  29. int m_nTargetRow;
  30. bool m_bIsUpon;
  31. };
  32. #endif // DRAGABLETABLE_H