说明
表格QTableView表头添加复选框,实现全选/不选功能,实现方法:继承QHeaderView,通过重写paintSection方法实现,效果图如下:
代码
.h
class CheckBoxHeader : public QHeaderView
{
Q_OBJECT
public:
CheckBoxHeader(Qt::Orientation orientation, QWidget* parent = 0);
bool isChecked() const { return isChecked_; }
void setIsChecked(bool val);
signals:
void checkBoxClicked(bool state);
protected:
void paintSection(QPainter* painter, const QRect& rect, int logicalIndex) const;
void mousePressEvent(QMouseEvent* event);
private:
bool isChecked_;
void redrawCheckBox();
};
.cpp
#include "CheckBoxHeader.h"
CheckBoxHeader::CheckBoxHeader(Qt::Orientation orientation, QWidge