该tableview控件的用法:

1、原理:

数据存放在“表”对象中,而将这个对象关联到tableview控件之后,将实现在UI中展示出来。

 class Query_Students : public QDialog
{
Q_OBJECT public:
...
private: QStandardItemModel* model; //表对象
};
     /*
创建一个表对象
*/
this->model = new QStandardItemModel();
     //关联表对象与tableview控件,这样表的内容就显式到tableview控件上去了
this->ui->tableView->setModel(model);

怎么存放数据进表:实际上就是将数据存放进表对象中,存放时分为表头+表项两种数据

表头:一般是一些说明性的字符串,需要先展示出来,所以表头部分在构造函数中添加:

 Query_Students::Query_Students(QWidget *parent) :
QDialog(parent),
ui(new Ui::Query_Students)
{
ui->setupUi(this); //1、设置表头,setHorizontalHeaderItem不需要行参数(就是第一行),需要:列号+要显式的内容
//表头是需要在窗口显式出来的时候就显式的,而数据项是在点击“开始查询”之后才填入的。
this->model->setHorizontalHeaderItem(,new QStandardItem("姓名"));
this->model->setHorizontalHeaderItem(,new QStandardItem("学号"));
this->model->setHorizontalHeaderItem(,new QStandardItem("性别"));
this->model->setHorizontalHeaderItem(,new QStandardItem("院系"));
this->model->setHorizontalHeaderItem(,new QStandardItem("年龄"));
this->model->setHorizontalHeaderItem(,new QStandardItem("爱好")); //除表头外的数据后续添加...
}

怎么添加表格中数据:

下面以QStringList数据填入为例进行示例:

 /*
当获取到文件中一行记录之后,并且转换为QStringList对象了,需要将其填入到指定的行、列标识的表中
setItem:一次只能填一个表格的信息,需要知道行号+列号+内容
*/
void Query_Students::match_stud_info(int row,QStringList subs){
//前面五个都是1对1的,比如:姓名-->jerry
for(int i = ;i<;i++){
this->model->setItem(row,i,new QStandardItem(subs.at(i)));
}
//对于爱好,由于是1对多的,需要拼接所有,然后显示在一个表格中——即 爱好:篮球 排球 足球 羽毛球
QString line_item ="";
for(int i=;i<subs.length();i++){
line_item +=subs.at(i)+',';
}
this->model->setItem(row,,new QStandardItem(line_item));
}
match_stud_info是一个自定义函数,需要传入:行号+ QStringlist的数据源
setLtem才是真正填写到表格中的操作,需要行号+列号+数据

<续...>

最新文章

  1. 【tomcat】HTTPS访问配置 + restful调用远程HTTPS绕过验证
  2. 顶点缓存对象(VBO)
  3. 【洛谷P3398】仓鼠找sugar
  4. VS问题汇总——竹子整理
  5. php用于URL的base64
  6. javascript 小日历
  7. js 如何创建一个对象
  8. 【PHP】解决html网页乱码问题
  9. hdu4726贪心
  10. POJ1308 Is It A Tree?
  11. C#中的匿名函数使用,类名&lt;T&gt;
  12. Spring声明式事务配置详解
  13. 51NOD 数字1的数量
  14. Python自定义排序
  15. CSS的显示模式
  16. 跟我学Shiro---无状态 Web 应用集成
  17. crontab 执行脚本,报错/home/scripts/eyeMonitor.sh: line 8: node: command not found
  18. skopt学习之路1-函数介绍:dummy_minimize
  19. 201709015工作日记--上下文的理解,ASM
  20. C#,一些非常简单但应该知道的知识点

热门文章

  1. 【leetcode】1224. Maximum Equal Frequency
  2. 由于数据库 &#39;XXX&#39; 离线,无法打开该数据库。
  3. 解决html5大文件断点续传
  4. POJ 2182 Lost Cows (树状数组 &amp;&amp; 二分查找)
  5. psdash-为开发、测试人员提供简单的方法,在web界面查看服务器的运行情况(网络,带宽,磁盘,CPU), 同时可以在web界面查看日志
  6. Vim 命令、操作、快捷键(收藏大全)
  7. htonl(),htons(),ntohl(),ntons()--大小端模式转换函数
  8. 超过 150 个最佳机器学习,NLP 和 Python教程
  9. c/c++二级指针动态开辟内存
  10. oracle备份和还原