博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt可视化-QTableWidget学习小结
阅读量:7030 次
发布时间:2019-06-28

本文共 2152 字,大约阅读时间需要 7 分钟。

创建表格窗口部件,然后
把定义的数据输入到表格里面。其实不是很难,设置其静态结构体,声明编号、姓名、性别、职位是字符类型,等级为整型。定义一个数组,装指定字段类型的数据,然后用一个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();
 }
 
本文转自 chen138 51CTO博客,原文链接:http://blog.51cto.com/chenboqiang/323254,如需转载请自行联系原作者
你可能感兴趣的文章
FastDFS蛋疼的集群和负载均衡(六)之Nginx高可用集群
查看>>
C语言入门经典读书笔记----第十一章 结构化数据
查看>>
Apache Thrift系列详解(二) - 网络服务模型
查看>>
chrome devtools使用详解——Performance
查看>>
了解一下ES6: 解构赋值&字符串
查看>>
7 - 在 Django Admin 后台发布文章
查看>>
SpringBoot+Mybatis+ Druid+PageHelper 实现多数据源并分页
查看>>
Umeng第三方登录
查看>>
EggBorn.js:一款顶级Javascript全栈开发框架
查看>>
前端开始的那件事——表单
查看>>
【前端】HTML属性
查看>>
js 算法3
查看>>
【Java 容器面试题】谈谈你对HashMap 的理解
查看>>
分组圆角TableView
查看>>
高级Java研发者在解决大数据问题上的一些技巧
查看>>
用 Node 开发一个命令行版本词典--不到十行的代码
查看>>
支持多解码模块的安卓视频播放器AndroidVideoplayer
查看>>
TCP协议详解
查看>>
Node.js process 模块解读
查看>>
Lodash源码分析-compact.js
查看>>