创建表格窗口部件,然后把定义的数据输入到表格里面。其实不是很难,设置其静态结构体,声明编号、姓名、性别、职位是字符类型,等级为整型。定义一个数组,装指定字段类型的数据,然后用一个for循环语句指定表格输入的数据,并做判断。用行row来做做变量,初始化为0,如果row数组下标staticDate[row].ID对应的数据不等于0,则row先自加,后赋值,如果staticDate[row].ID对应的数值等于0,则跳出for循环。这是为什么数组第四行数组值都是0的原因。在for循环中,声明表格窗口部件项目对象,并字段数组装的字段类型。设数据存放位置,创建一个没有父窗口的表格,然后插入表格项目用setItem()函数,语法是这样的setItem(row, column, newItem);第一个参数row是行;第二个参数column是列,第三个参数是表格窗口项目,也就是指定的字段类型。main主函数里面声明,创建一个表格对象,并指定是10行,5列。设置表格部件的编辑属性,设置为只读。并设置表格窗口部件头部字符列的标签,标签依次显示为编号、姓名、性别、职业、等级。这个populateTableWidget()函数装表格窗口部件的数据。Resize()函数是设置表格窗口部件的大小。最后运行显示窗口部件。
 
#include <QApplication><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

#include <QTableWidgetItem>

#include <QTableWidget>

#include <QStringList>

void populateTableWidget(QTableWidget *tableWidget)

{

     static const struct {

         const char *ID;

         const char *Name;

         const char *Sex;

         const char *Description;

         int rating;

     } staticData[] = {

         { "2008***1", "ZhangSan","Boy","Student",3},

         { "2008***2", "LiSi",  "Woman","Teacher",5},

         { "2008***3", "WangWu", "Man","Leadership",6},

         { 0,0,0,0,0}

};

 

     for (int row = 0; staticData[row].ID != 0; ++row) {

         QTableWidgetItem *item0 = new QTableWidgetItem(staticData[row].ID);

         QTableWidgetItem *item1 = new QTableWidgetItem(staticData[row].Name);

         QTableWidgetItem *item2 = new QTableWidgetItem(staticData[row].Sex);

         QTableWidgetItem *item3 = new QTableWidgetItem(staticData[row].Description);

         QTableWidgetItem *item4 = new QTableWidgetItem;

     //    item4->setData(0,qVariantFromValue(StarRating(staticData[row].rating)));

 

         tableWidget->setItem(row, 0, item0);

         tableWidget->setItem(row, 1, item1);

         tableWidget->setItem(row, 2, item2);

         tableWidget->setItem(row, 3, item3);

         tableWidget->setItem(row, 4, item4);

     }

}

 

 int main(int argc, char *argv[])

 {

     QApplication app(argc, argv);

 

     QTableWidget tableWidget(10,5);

     tableWidget.setEditTriggers(QAbstractItemView::NoEditTriggers);

     QStringList headerLabels;

     headerLabels << "ID" << "Name"<<"Sex"<< "Description"<<"Rating";

     tableWidget.setHorizontalHeaderLabels(headerLabels);

              

    

     populateTableWidget(&tableWidget);

    

     tableWidget.resize(550, 300);

     tableWidget.show();

 

     return app.exec();

 }
 
 
 
还未完....