#pragma once #pragma execution_character_set("utf-8") #include #include #include #include #include #include #include #include #include #include class UiSkin { public: UiSkin() { m_strBackgroundClr = "#ffffff"; m_strBorderClr = "#3399ff"; m_strHighLightClr = "#333333"; m_strTextClr = "#666666"; m_strItemHoverColor = "#d6f1c8"; m_strItemSelectColor = "#a9e28b"; } public: QString m_strBackgroundClr; QString m_strBorderClr; QString m_strHighLightClr; QString m_strTextClr; QString m_strItemHoverColor; QString m_strItemSelectColor; }; class QtDragListWidget; class DragListItem { public: DragListItem() { } DragListItem(int id, QPixmap pixmap, QString title, QString describetitle, QString subtitle = "0ms") : m_nId(id), m_pixmap(pixmap), m_strTitle(title), m_strDescribeTitle(describetitle), m_strSubTitle(subtitle) { } public: int m_nId; QPixmap m_pixmap; QString m_strTitle; QString m_strSubTitle; QString m_strDescribeTitle; QRect m_rectItem; QRect m_rectSub; QPixmap m_subPixmap; }; class DragListWidgetPrivate : public QWidget { Q_OBJECT public: explicit DragListWidgetPrivate(QWidget* parent = 0); ~DragListWidgetPrivate(); void AddItem(int id, DragListItem item); void AddItems(QMap items); QString GetCurrentItemText(); public: QMap m_items; int if_judge_index = 0; QMap m_states; int m_nIndex; QMap ItemContent; signals: void signalItemClicked(int index); void sig_ActionProItem(int, QString, bool); private: UiSkin m_uiSkin; int m_nHoverItem; int m_nExchangeEndId; //拖动交换位置 int m_nExchangeStartId; //拖动起始位置 bool m_bInsertUpOrDown; int m_nMarginSize; //边距 qreal m_itemSize; //item的size QTimer* m_timer; //针对拖拽的时间 QMenu* m_menu; //右键菜单 QPushButton* stateAction_buf; QtDragListWidget* qDragListWidget; QTabWidget* objTabName; QTreeWidget* objTreeName; QTimer* icon_timer; int pos_x = 0; QVector str_items = QVector(100); QList i_keys; QList if_state; int pos_x_scale = 0; int left_line_state = 0; int if_state_buf_pos_x = 0; private: void AddRightButtonMenu(); void CalcWidgetHeight(); void InsertItem(QPoint pos, DragListItem newItem); void DeleteItem(int index); //交换顺序 void ExchangeItem(int index, DragListItem newItem, bool bUp = true); QPixmap GetDragCurorPixmap(int index); void OpenFunction(int index); signals: void sig_DActivation(QString); private slots: void SltDragPressCheck(); void slot_IconCheck(); void slot_Current(); void slot_Previous(); void slot_Next(); void slot_DActivation(); void slot_DisabledActivation(QString); void slot_Delete(); protected: bool m_bDragPress; void mouseDoubleClickEvent(QMouseEvent* e); void mousePressEvent(QMouseEvent* e); void mouseReleaseEvent(QMouseEvent*); void mouseMoveEvent(QMouseEvent* e); void leaveEvent(QEvent*); void dragEnterEvent(QDragEnterEvent* event) override; void dragMoveEvent(QDragMoveEvent* event) override; void dropEvent(QDropEvent* event) override; void paintEvent(QPaintEvent*); void drawItem(QPainter* painter, const DragListItem& item, const int draw_mode); }; class QtDragListWidget : public QWidget { Q_OBJECT public: explicit QtDragListWidget(QWidget* parent = 0); ~QtDragListWidget(); int GetIfJudgeIndex() const; int GetAllToolCount() const; int GetCurrentItemId() const; QString GetCurrentItemText() const; QVector GetAllItemList() const, GetAllItemList_B1() const, GetAllItemList_B2() const, GetAllItemList_B3() const, GetAllItemList_B4() const, GetAllItemList_B5() const, GetAllItemList_B6() const, GetAllItemList_B7() const, GetAllItemList_B8() const, GetAllItemList_B9() const, GetAllItemList_B10() const; QVector GetAllItemList_B11() const, GetAllItemList_B12() const, GetAllItemList_B13() const, GetAllItemList_B14() const, GetAllItemList_B15() const, GetAllItemList_B16() const, GetAllItemList_B17() const, GetAllItemList_B18() const, GetAllItemList_B19() const, GetAllItemList_B20() const; QMap GetItemState() const, GetItemState_B1()const, GetItemState_B2() const, GetItemState_B3() const, GetItemState_B4() const, GetItemState_B5() const, GetItemState_B6() const, GetItemState_B7() const, GetItemState_B8() const, GetItemState_B9() const, GetItemState_B10() const; QMap GetItemState_B11() const, GetItemState_B12()const, GetItemState_B13() const, GetItemState_B14() const, GetItemState_B15() const, GetItemState_B16() const, GetItemState_B17() const, GetItemState_B18() const, GetItemState_B19() const, GetItemState_B20() const; void SetItemSubText(const QString itemName, const QString sunName); void SetItemSubIcon(const QString itemName, const QPixmap pm); private: QThread* h_this, * h_B1, * h_B2, * h_B3, * h_B4, * h_B5, * h_B6, * h_B7, * h_B8, * h_B9, * h_B10; QThread* h_B11, * h_B12, * h_B13, * h_B14, * h_B15, * h_B16, * h_B17, * h_B18, * h_B19, * h_B20; QThread* h_IconB1, * h_IconB2, * h_IconB3, * h_IconB4, * h_IconB5, * h_IconB6, * h_IconB7, * h_IconB8, * h_IconB9, * h_IconB10; QThread* h_IconB11, * h_IconB12, * h_IconB13, * h_IconB14, * h_IconB15, * h_IconB16, * h_IconB17, * h_IconB18, * h_IconB19, * h_IconB20; signals: void signalItemClicked(int index); void sig_ActionProItem(int, QString, bool); void sig_ItemSubText_B1(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B2(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B3(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B4(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B5(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B6(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B7(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B8(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B9(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B10(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B11(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B12(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B13(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B14(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B15(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B16(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B17(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B18(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B19(const QString itemName, const QString subTitleStr); void sig_ItemSubText_B20(const QString itemName, const QString subTitleStr); private slots: void slot_ItemSubText_B1(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B2(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B3(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B4(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B5(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B6(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B7(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B8(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B9(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B10(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B11(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B12(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B13(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B14(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B15(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B16(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B17(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B18(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B19(const QString itemName, const QString subTitleStr); void slot_ItemSubText_B20(const QString itemName, const QString subTitleStr); public: void SetItemSubText_B1(const QString itemName, const QString sunName); void SetItemSubText_B2(const QString itemName, const QString sunName); void SetItemSubText_B3(const QString itemName, const QString sunName); void SetItemSubText_B4(const QString itemName, const QString sunName); void SetItemSubText_B5(const QString itemName, const QString sunName); void SetItemSubText_B6(const QString itemName, const QString sunName); void SetItemSubText_B7(const QString itemName, const QString sunName); void SetItemSubText_B8(const QString itemName, const QString sunName); void SetItemSubText_B9(const QString itemName, const QString sunName); void SetItemSubText_B10(const QString itemName, const QString sunName); void SetItemSubText_B11(const QString itemName, const QString sunName); void SetItemSubText_B12(const QString itemName, const QString sunName); void SetItemSubText_B13(const QString itemName, const QString sunName); void SetItemSubText_B14(const QString itemName, const QString sunName); void SetItemSubText_B15(const QString itemName, const QString sunName); void SetItemSubText_B16(const QString itemName, const QString sunName); void SetItemSubText_B17(const QString itemName, const QString sunName); void SetItemSubText_B18(const QString itemName, const QString sunName); void SetItemSubText_B19(const QString itemName, const QString sunName); void SetItemSubText_B20(const QString itemName, const QString sunName); void SetItemSubIcon_B1(const QString itemName, const QPixmap pm); void SetItemSubIcon_B2(const QString itemName, const QPixmap pm); void SetItemSubIcon_B3(const QString itemName, const QPixmap pm); void SetItemSubIcon_B4(const QString itemName, const QPixmap pm); void SetItemSubIcon_B5(const QString itemName, const QPixmap pm); void SetItemSubIcon_B6(const QString itemName, const QPixmap pm); void SetItemSubIcon_B7(const QString itemName, const QPixmap pm); void SetItemSubIcon_B8(const QString itemName, const QPixmap pm); void SetItemSubIcon_B9(const QString itemName, const QPixmap pm); void SetItemSubIcon_B10(const QString itemName, const QPixmap pm); void SetItemSubIcon_B11(const QString itemName, const QPixmap pm); void SetItemSubIcon_B12(const QString itemName, const QPixmap pm); void SetItemSubIcon_B13(const QString itemName, const QPixmap pm); void SetItemSubIcon_B14(const QString itemName, const QPixmap pm); void SetItemSubIcon_B15(const QString itemName, const QPixmap pm); void SetItemSubIcon_B16(const QString itemName, const QPixmap pm); void SetItemSubIcon_B17(const QString itemName, const QPixmap pm); void SetItemSubIcon_B18(const QString itemName, const QPixmap pm); void SetItemSubIcon_B19(const QString itemName, const QPixmap pm); void SetItemSubIcon_B20(const QString itemName, const QPixmap pm); signals: void sig_ItemSubIcon_B1(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B2(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B3(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B4(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B5(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B6(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B7(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B8(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B9(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B10(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B11(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B12(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B13(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B14(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B15(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B16(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B17(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B18(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B19(const QString itemName, const QPixmap pm); void sig_ItemSubIcon_B20(const QString itemName, const QPixmap pm); private slots: void slot_ItemSubIcon_B1(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B2(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B3(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B4(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B5(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B6(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B7(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B8(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B9(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B10(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B11(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B12(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B13(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B14(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B15(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B16(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B17(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B18(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B19(const QString itemName, const QPixmap pm); void slot_ItemSubIcon_B20(const QString itemName, const QPixmap pm); private slots: void slot_ActionProItem(int, QString, bool); public: DragListWidgetPrivate* d; };