zoukankan      html  css  js  c++  java
  • tableview(model base)

    该tableview控件的用法:

    1、原理:

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

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

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

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

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

    怎么添加表格中数据:

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

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

     <续...>

    内在的趣味,表面的繁琐
  • 相关阅读:
    第一周C语言作业
    C语言I博客园作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
  • 原文地址:https://www.cnblogs.com/data1213/p/10805428.html
Copyright © 2011-2022 走看看