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");
}

代码效果图:
QT之Tableview_第1张图片

你可能感兴趣的:(Qt)