虽然使用比较简单,但亲自过一遍还是有必要的,权当一个学习笔记吧,记录在此。
#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=5, columns=4; // 实例化Table,并指定行列数 QTableWidget widget(rows, columns); // 设置表头 QStringList list; list << "Country" << "Grand GDP" << "Population" << "GDP per person"; widget.setHorizontalHeaderLabels(list); for (int row=0; row<rows; row++) { // 每一个items[j]代表一个Cell,整体组成一行 QTableWidgetItem * items[columns]; // 设置每一行的Cell风格 for (int j=0; j<columns; j++ ) { items[j] = new QTableWidgetItem(); // 创建一个QTableWidgetItem对象表示表格中的一个Cell数据项 items[j]->setTextAlignment( Qt::AlignHCenter); QFont font; font.setPointSize(16); items[j]->setFont( font ); } // 设置每一行的Cell内容 GDP_FACTS * p = & GDP_facts[row]; // 结构体指针赋值,使之指向提前定义的固定内容 items[0]->setData(Qt::DisplayRole, p->country ); // 构造的QVariant对象存放一个QString值 items[1]->setData(Qt::DisplayRole, p->GDP ); // 构造的QVariant对象存放double类型的值 items[2]->setData(Qt::DisplayRole, p->population ); items[3]->setData(Qt::DisplayRole, p->GDP / p->population ); // Table的Cell要一个一个设置 for (int j=0; j<columns; j++ ) widget.setItem(row, j, items[j] ); // 调用setItem()将它们添加到QTableWidget的内部模型中。 } // 设置表头排序 widget.setSortingEnabled(true ); widget.resize(800, 300); widget.show(); return app.exec(); }
参考:
http://book.51cto.com/art/201207/347904.htm
超详细说明:TableWidget使用说明和增删改操作的实现
http://www.cnblogs.com/li-peng/p/3654634.html
时间: 2024-10-11 23:17:13