该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才是真正填写到表格中的操作,需要行号+列号+数据

<续...>

tableview(model base)的更多相关文章

  1. NopCommerce架构分析之五------Model绑定Action参数

    asp.net MVC中Action参数不只是一些基本类型,也支持实体参数.那么从客户端传来的数据如何映射或转换成实体对象呢?就是通过实体绑定类ModelBinder.此系列类在请求转化为后台Cont ...

  2. ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上

    原文:ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上 ASP.NET MVC默认采用基于标准特性的Model验证机制,但是只有应用在Model ...

  3. JFinal极速开发框架使用笔记(三) 分析Model和ActiveRecord

    JFinal框架的一些新发现的用法: 在JFinal框架中,实体类并不需要设置属性,更不需要配置getset方法就可以很方便的操作数据库,如果需要设置或者获取属性,可以直接使用一下方式: User u ...

  4. JFinal Web开发学习(四)数据库连接与自动生成model

    1.新建数据库jfinal_test,user表 /* Navicat MySQL Data Transfer Source Server : . Source Server Version : 50 ...

  5. RookeyFrame 线下 添加Model

    1.在Model层添加一个类,继承BaseEntity,如: (将就demo里面的类改了一下) using Rookey.BusSys.Model.Base; using Rookey.BusSys. ...

  6. IOS彩票第二天设置界面(1)

    ****跳转到设置界面 - (IBAction)setting:(id)sender { // 创建设置口控制器 ILSettingTableViewController *settingVc = [ ...

  7. CSharpGL(33)使用uniform块来优化对uniform变量的读写

    CSharpGL(33)使用uniform块来优化对uniform变量的读写 +BIT祝威+悄悄在此留下版了个权的信息说: Uniform块 如果shader程序变得比较复杂,那么其中用到的unifo ...

  8. phpcms V9 整合 Discuz! X2 教程

    整合原理: UCenter 作服务端:phpsso 与 Discuz! 分别作 UCenter 的客户端应用:phpsso 与 Discuz! 通过 UCenter 发生交互. phpcms 通过 p ...

  9. 关于MVC EF架构及Repository模式的一点心得

    一直都想写博客,可惜真的太懒了或者对自己的描述水平不太自信,所以...一直都是不想写的状态,关于领域驱动的东西看了不少,但是由于自己水平太差加上工作中实在用不到,所以一直处于搁置状态,最近心血来潮突然 ...

随机推荐

  1. Codeforces 1272D

    题意:给定一个长度为n的数组a,你至多可以删去其中的一个元素,找出最长的连续(严格)上升子序列的长度. 分析:读完题之后可以发现这道题和模板:连续上升子序列很相像,首先可以确定方向是dp:状态是当前的 ...

  2. Nginx做反向代理时访问端口被自动去除

    使用的Nginx版本 : nginx/1.13.10 出现问题的配置文件如下 upstream http-web { server 0.0.0.0:9000; } server { listen 80 ...

  3. net core 返回404方法

    public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { ...

  4. cast() 函数进行类型转换

    service_fee  字段定义:`service_fee`  decimal(14,4) NULL DEFAULT NULL COMMENT '手续费金额,含税' , 需求:service_fee ...

  5. redis 日志等级说明

    redis loglevel 安装默认的设置为 verbose 1)debug:会打印出很多信息,适用于开发和测试阶段 2)verbose(冗长的):包含很多不太有用的信息,但比debug要清晰一些 ...

  6. UVa 1343 The Rotation Game (状态空间搜索 && IDA*)

    题意:有个#字型的棋盘,2行2列,一共24个格. 如图:每个格子是1或2或3,一共8个1,8个2,8个3. 有A~H一共8种合法操作,比如A代表把A这一列向上移动一个,最上面的格会补到最下面. 求:使 ...

  7. 在Sublime Text 3中配置Python3的开发环境/Build System

    本文来源:https://www.cnblogs.com/zhangqinwei/p/6886600.html Sublime Text作为一款支持多种编程语言的文本编辑神器,深受广大开发者的喜爱.通 ...

  8. 【Leetcode】国王挖金矿

    参考该文章 https://www.cnblogs.com/henuliulei/p/10041737.html #include <iostream> #include <cstr ...

  9. prometheus-pushgateway安装

    背景 当prometheus的server与target不在同一网段网络不通,无法直接拉取target数据,需要使用pushgateway作为数据中转点. 弊端 将多个节点数据汇总到 pushgate ...

  10. JMS学习二(简单的ActiveMQ实例)

    下载安装ActiveMQ服务,下载地址当然可以去官网下载 http://activemq.apache.org/download-archives.html ActiveMQ安装很简单,下载解压后到b ...