玉兔远程控制 0.1.0-bate6
载入中...
搜索中...
未找到
CheckBoxHeader.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4#include <QHeaderView>
5#include <QSet>
6
18class CCheckBoxHeader : public QHeaderView {
19 Q_OBJECT
20
21public:
22 explicit CCheckBoxHeader(Qt::Orientation orientation, QWidget *parent = nullptr);
23
28 void SetCheckable(int index, bool checkable, Qt::CheckState state = Qt::Unchecked);
29 bool isCheckable(int index) const;
34 void SetCheckState(int index, Qt::CheckState state);
35 Qt::CheckState GetCheckState(int index) const;
36
37signals:
38 void sigCheckStateChanged(int index, Qt::CheckState state);
39
40protected:
41 void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override;
42 void mousePressEvent(QMouseEvent *event) override;
43
44private:
45 QRect CheckboxRect(const QRect &sectionRect) const;
46 void DrawText(QPainter* painter, const QRect& rect,
47 const QString& text, Qt::Alignment alignment) const;
48 void DrawCheckBox(QPainter* painter, const QRect& rect,
49 Qt::CheckState state, bool enabled) const;
50
51 QHash<int, Qt::CheckState> m_CheckableSections;
52};
包含复选框的表头
void SetCheckable(int index, bool checkable, Qt::CheckState state=Qt::Unchecked)
设置是否显示复选框
void SetCheckState(int index, Qt::CheckState state)
设置表头复选框状态