#ifndef GGBASEHEADER_H #define GGBASEHEADER_H #include #include class BaseHeader : public QHeaderView { Q_OBJECT public: enum SortState { Disable = -1, NotSort = 0, Asc = 1, Desc = 2 }; public: explicit BaseHeader(QWidget *parent = nullptr, Qt::Orientation orientation = Qt::Horizontal, Qt::Alignment flags = Qt::AlignLeft|Qt::AlignVCenter); void SetTextAlignment(Qt::Alignment flags); void SetSortable(bool value, const QList ¬SortList = QList()); void SetCheckable(bool value); void SetChecked(Qt::CheckState state); QString GetText(int logicalIndex);//获取表头名称 add by wl 2023-06-26 protected: void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override; signals: void sig_Sorted(int logicalIndex, SortState state); void sig_Checked(bool checked); private slots: void OnSectionClicked(int logicalIndex); private: Qt::Alignment m_alignmentText; int m_nCurSortedIndex; bool m_bSortable; SortState m_stateCurSorted; QList m_listSortDisable; bool m_bCheckable; Qt::CheckState m_checkState; //QList m_listStates; private: QString GetCheckboxImage(Qt::CheckState state) const; }; #endif // GGBASEHEADER_H