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学习小结_第1张图片
 
 
还未完....

你可能感兴趣的:(学习,小结,休闲,可视化,QTableWidget)