QTableView当有内容时,会出现列号。小弟我想在这列的表头上加个文字,应该怎样做
QTableView当有内容时,会出现列号。我想在这列的表头上加个文字,应该怎样做?如题。[解决办法]在头文件定义 Q
QTableView当有内容时,会出现列号。我想在这列的表头上加个文字,应该怎样做?
如题。
[解决办法]
在头文件定义 QSqlTableModel *model;
然后在CPP文件中调用该model
下面示例代码便是设置表头
model->setHeaderData(0, Qt::Horizontal, QObject::tr("你想用的列名"));//这是设置第一列
model->setHeaderData(1, Qt::Horizontal, QObject::tr("列名"));//这是设置第二列
[解决办法]
通过重载QAbstractItemModel的headerData函数
[解决办法]
[解决办法]子类化QAbstractTableModel,并覆盖该类的setHeaderData()函数
class MyTableViewModel : public QAbstractTableModel
{
public:
QVariant headerData(int section, Qt::Orientation orient, int role) const;
}
QVariant MyTableViewModel::headerData(int section, Qt::Orientation orient, int role) const
{
if (orient == Qt::Vertical && role == Qt::DisplayRole)
return "你想显示的文字";
return QVariant();
}
然后在你的QTableView实例中设置该自定义模型:
tableView->setModel(new MyTableViewModel);
[解决办法]直接调用你使用的model的setHeaderData函数就可以了
[解决办法]没那么麻烦,QStandardItemModel有个setHorizontalHeaderLabels(const QStringList& labels );