虽然使用比较简单,但亲自过一遍还是有必要的,权当一个学习笔记吧,记录在此。
#include "tablewidgetxxx.h"
#include <QtGui/QApplication>
#include <QtGui/QTableWidget> typedef struct {
char * country;
double GDP, population;
}GDP_FACTS; GDP_FACTS GDP_facts[] = {
{"United States", 14.6, 2.7 },
{"PRC China", 6.1, 13.0 },
{"Japan", 5.4, 1.3 },
{"Germany", 3.3, 0.8 },
{"United Kingdom", 2.3, 0.6 }
}; int main(int argc, char *argv[])
{
QApplication app(argc, argv); const int rows=, columns=;
// 实例化Table,并指定行列数
QTableWidget widget(rows, columns);
// 设置表头
QStringList list;
list << "Country" << "Grand GDP" << "Population" << "GDP per person";
widget.setHorizontalHeaderLabels(list); for (int row=; row<rows; row++) {
// 每一个items[j]代表一个Cell,整体组成一行
QTableWidgetItem * items[columns];
// 设置每一行的Cell风格
for (int j=; j<columns; j++ ) {
items[j] = new QTableWidgetItem(); // 创建一个QTableWidgetItem对象表示表格中的一个Cell数据项
items[j]->setTextAlignment( Qt::AlignHCenter);
QFont font; font.setPointSize();
items[j]->setFont( font );
}
// 设置每一行的Cell内容
GDP_FACTS * p = & GDP_facts[row]; // 结构体指针赋值,使之指向提前定义的固定内容
items[]->setData(Qt::DisplayRole, p->country ); // 构造的QVariant对象存放一个QString值
items[]->setData(Qt::DisplayRole, p->GDP ); // 构造的QVariant对象存放double类型的值
items[]->setData(Qt::DisplayRole, p->population );
items[]->setData(Qt::DisplayRole, p->GDP / p->population );
// Table的Cell要一个一个设置
for (int j=; j<columns; j++ )
widget.setItem(row, j, items[j] ); // 调用setItem()将它们添加到QTableWidget的内部模型中。
}
// 设置表头排序
widget.setSortingEnabled(true ); widget.resize(, );
widget.show();
return app.exec();
}
参考:
http://book.51cto.com/art/201207/347904.htm
超详细说明:TableWidget使用说明和增删改操作的实现
http://www.cnblogs.com/li-peng/p/3654634.html