自己创建测试程序的时候是可以实现的,测试代码如下:
#include <QtGui/QApplication>
#include "widget.h"
#include <QTableWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
QTableWidget* pTable = new QTableWidget(&w);
pTable->setRowCount(2);
pTable->setColumnCount(2);
QStringList lsHeader;
lsHeader.append("a");
lsHeader.append("b");
pTable->setHorizontalHeaderLabels(lsHeader);
w.show();
return a.exec();
}
但是用在现有的工程中,具体说就是在一个QDockWidget中用上述方法修改表头内容,
总是没什么效果(表头依然是1,2,...)。不知道可能是什么原因。工程中代码如下:
//QDockWidget构造函数中
m_pAnaArea = new CAnaArea(this); //这是一个QWidget控件
m_pTable = new QTableWidget(m_pAnaArea);//创建表格控件
m_pTable->setColumnCount(2);
m_pTable->setRowCount(2);
QStringList lsHeader;
lsHeader.append(tr("a"));
lsHeader.append(tr("b"));
m_pTable->setHorizontalHeaderLabels(lsHeader);//修改表头(不知道为什么没有效果)
m_pVBox = new QVBoxLayout(m_pAnaArea); //因以后要在其中添加其他控件,用了纵向布局
m_pVBox->setMargin(0);
m_pVBox->addWidget(m_pTable);
m_pAnaArea->setLayout(m_pVBox);
setWidget(m_pAnaArea);