Qt可视化-QTableWidget学习小结

创建表格窗口部件,然后把定义的数据输入到表格里面。其实不是很难,设置其静态结构体,声明编号、姓名、性别、职位是字符类型,等级为整型。定义一个数组,装指定字段类型的数据,然后用一个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>
#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();
 }
 
Qt可视化-QTableWidget学习小结









本文转自 chen138 51CTO博客,原文链接:http://blog.51cto.com/chenboqiang/323254,如需转载请自行联系原作者