QT之Tableview

想要了解更多的tableview可以看这位博客Qt深入浅出(十五)QTableView

这里做了一个简单的学生系统查询功能显示Tableview:
表格视图控件QTableView,需要和QStandardItemModel, 配套使用,这套框架是基于MVC设计模式设计的,M(Model)是QStandardItemModel数据模型,不能单独显示出来。V(view)是指QTableView视图,要来显示数据模型,C(controllor)控制在Qt中被弱化,与View合并到一起。

this->model = new QStandardItemModel; //创建一个标准的条目模型

this->ui->tableView->setModel(model);
此函数将创建并设置新的选择模型,将以前设置的任何模型替换为model(标准的条目模型), model设置的内容都将显示在tableview上。一般情况下:tableView上设置要显示“文本”信息,则在model上设置,tableView上设置字体的颜色边框大小,则在tableView上设置

//setHorizontalHeaderItem设置水平条目栏
//在tableView上水平条目栏的头第0列设置为姓名
this->model->setHorizontalHeaderItem(0, new QStandardItem(“姓名”) );

//setColumnWidth设置每一列的宽度
this->ui->tableView->setColumnWidth(0, 100); //设置列的宽度

//setItem设置条目栏中的一个格子的信息
this->model->setItem(0, 5, new QStandardItem(“hello world” ) );

//setRowCount设置行段数目
//setHeaderData设置行头的名称
model->setRowCount(3);
model->setHeaderData(0,Qt::Vertical, “行0”);

QueryStu::QueryStu(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::QueryStu)
{
    ui->setupUi(this);
//    readFromFile();
    this->model = new QStandardItemModel;   //创建一个标准的条目模型
    this->ui->tableView->setModel(model);   //将tableview设置成model这个标准条目模型的模板, model设置的内容都将显示在tableview上

    this->model->setHorizontalHeaderItem(0, new QStandardItem("姓名") );
    this->model->setHorizontalHeaderItem(1, new QStandardItem("学号"));
    this->model->setHorizontalHeaderItem(2, new QStandardItem("性别"));
    this->model->setHorizontalHeaderItem(3, new QStandardItem("年龄"));
    this->model->setHorizontalHeaderItem(4, new QStandardItem("院系"));
    this->model->setHorizontalHeaderItem(5, new QStandardItem("兴趣"));

    this->ui->tableView->setColumnWidth(0, 100);    //设置列的宽度
    this->ui->tableView->setColumnWidth(1, 150);
    this->ui->tableView->setColumnWidth(2, 50);
    this->ui->tableView->setColumnWidth(3, 50);
    this->ui->tableView->setColumnWidth(4, 100);
    this->ui->tableView->setColumnWidth(5, 150);

    /*setItem设置条目栏中的一个格子的信息*/
    this->model->setItem(1, 5, new QStandardItem("hello world" ) );

    /*设置行字段名*/
    model->setRowCount(3);
    model->setHeaderData(0,Qt::Vertical, "行0");
    model->setHeaderData(1,Qt::Vertical, "行1");
    model->setHeaderData(2,Qt::Vertical, "行2");
}

代码效果图:
在这里插入图片描述

  • 26
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值