首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QTableView当有内容时,会出现列号。小弟我想在这列的表头上加个文字,应该怎样做

2012-03-12 
QTableView当有内容时,会出现列号。我想在这列的表头上加个文字,应该怎样做?如题。[解决办法]在头文件定义 Q

QTableView当有内容时,会出现列号。我想在这列的表头上加个文字,应该怎样做?
如题。

[解决办法]
在头文件定义 QSqlTableModel *model;


然后在CPP文件中调用该model
下面示例代码便是设置表头
model->setHeaderData(0, Qt::Horizontal, QObject::tr("你想用的列名"));//这是设置第一列
model->setHeaderData(1, Qt::Horizontal, QObject::tr("列名"));//这是设置第二列
[解决办法]
通过重载QAbstractItemModel的headerData函数
[解决办法]

探讨

在头文件定义 QSqlTableModel *model;


然后在CPP文件中调用该model
下面示例代码便是设置表头
model->setHeaderData(0, Qt::Horizontal, QObject::tr("你想用的列名"));//这是设置第一列
model->setHeaderData(1, Qt::Horizontal, QObject::tr("……

[解决办法]
子类化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 );

热点排行