您的位置:首页 > 编程语言 > Qt开发

QTableWidget使用简单,因为不再存在父节点的关系

2014-10-29 18:25 253 查看
虽然使用比较简单,但亲自过一遍还是有必要的,权当一个学习笔记吧,记录在此。

#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: