前言
在使用QtableWidget时当设置表头时,我们经常用到的函数是,setHorizontalHeaderLabels
。但是如果我们对表头有一些特殊要求。比如说表头添加一个复选框,网络上的解决方案一般都是继承于QHaderView
然后重写 paintSection
方法。那么我们就必须使用继承于 QHeaderView
的对象来设置表头了也就是要使用QTableWidget
的 setHorizontalHeader
方法来设置表头。那么我们可以通过以下方法来设置QTableWidget
的表头
核心代码
/*
因为 QHeaderView 也是属于 model/view 模式所以需要一个model来提供数据供 QHeaderView来显示
*/
ui->tableWidget->setColumnCount(3);
QHeaderView* view = new QHeaderView(Qt::Horizontal);
QStandardItemModel* model = new QStandardItemModel;
QStringList labels;
labels << QStringLiteral("姓名") << QStringLiteral("年级") << QStringLiteral("学号");
model->setHorizontalHeaderLabels(labels);
view->setModel(model);
ui->tableWidget->setHorizontalHeader(view);