Qt深入浅出(十五)QTableView

QTableView

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

1 QTableView简单应用

​ QStandardItmeModel表格的数据模型,那么这个模型需要填上每一行每一列的数据,就像execl表格一样。

​ widget.h


#ifndef WIDGET_H
#define WIDGET_H

#include <QTableView>

class Widget : public QTableView //继承至QTableView
{
   
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

​ widget.cpp


#include "widget.h"
#include <QStandardItemModel>
#include <QDebug>
Widget::Widget(QWidget *parent)
    : QTableView(parent)
{
   
   QStandardItemModel* model = new QStandardItemModel(this);
   model->setItem(0, 0, new QStandardItem("张三")); 
   model->setItem(0, 1, new QStandardItem("3"));
   model->setItem(0, 2, new QStandardItem("男"));
   this->setModel(model);
}

Widget::~Widget()
{
   

}

​ 以上代码实现了在model中添加一条数据,然后通过setModel函数设置view的数据模型为model,显示出来,如图:

2 修改行列字段名

​ 修改字段名可以使用QStandardItemModel::setHeaderData,但是在这之前你需要调用QStandardItemModel::setColumnCountQStandardItemModel::setRowCount,例如:


Widget::Widget(QWidget *parent)
    : QTableView(parent)
{
   
   QStandardItemModel* model = new QStandardItemModel(this);
   /*设置列字段名*/
   model->setColumnCount(3);
   model->setHeaderData(0,Qt::Horizontal, "姓名");
   model->setHeaderData(1,Qt::Horizontal, "年龄");
   model->setHeaderData(2,Qt::Horizontal, "性别");

   /*设置行字段名*/
   model->setRowCount(3);
   model->setHeaderData(0,Qt::Vertical, "记录一");
   model->setHeaderData(1,Qt::Vertical, "记录二");
   model->setHeaderData(
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值