QT表格控件QTableView简介
& # 8203;表格视图控件QTableView,需要和QStandardItemModel,配套使用,这套框架是基于MVC设计模式设计的,M(模型)是QStandardItemModel数据模型,不能单独显示出来.V(视图)是指QTableView视图,要来显示数据模型,C(控制器)控制在Qt中被弱化,与视图合并到一起。
QTableView简单使用实例
& # 8203;QStandardItmeModel表格的数据模型,那么这个模型需要填上每一行每一列的数据,就像execl表格一样。
widget.h
的ifndef WIDGET_H #定义WIDGET_H & # 8203; # include & lt; QTableView> & # 8203; 公共QTableView类部件://继承至QTableView { & # 160;& # 160;Q_OBJECT & # 8203; 公众: & # 160;& # 160;小部件(QWidget *父=0); & # 160;& # 160;~小部件(); }; & # 8203; # endif//WIDGET_H
& # 8203; widget.cpp
# include“widget.h” # include & lt; QStandardItemModel> # include & lt; QDebug> 部件::小部件(QWidget *父母) & # 160;:QTableView(父) { & # 160;QStandardItemModel *模型=new QStandardItemModel(这个); & # 160;模型→setItem(0, 0,新QStandardItem(“张三")); & # 160;模型→setItem(0, 1,新的QStandardItem (3)); & # 160;模型→setItem(0、2、新QStandardItem(男)); & # 160;这→setModel(模型); } & # 8203; 部件::~小部件() { & # 8203; }
& # 8203;以上代码实现了在模型中添加一条数据,然后通过setModel函数设置视图的数据模型为模型,显示出来,如图:
QTableView修改行列字段名
& # 8203;修改字段名可以使用<代码> QStandardItemModel:: setHeaderData> 代码,但是在这之前你需要调用<代码> QStandardItemModel:: setColumnCount 代码>和<代码> QStandardItemModel:: setRowCount> 代码,例如:
部件::小部件(QWidget *父母) & # 160;:QTableView(父) { & # 160;QStandardItemModel *模型=new QStandardItemModel(这个); & # 160;/*设置列字段名*/& # 160;模型→setColumnCount (3); & # 160;模型→setHeaderData (0, Qt:水平,“姓名”); & # 160;模型→setHeaderData (1, Qt::水平,“年龄”); & # 160;模型→setHeaderData (2, Qt::水平,“性”别); & # 8203; & # 160;/*设置行字段名*/& # 160;模型→setRowCount (3); & # 160;模型→setHeaderData (0, Qt:垂直的,“记录一”); & # 160;模型→setHeaderData (1, Qt::垂直的,“记录二”); & # 160;模型→setHeaderData (2, Qt::垂直的,“记录三”);& # 160; & # 160;& # 160;& # 160; & # 160;/*设置一条数据*/& # 160; & # 160;模型→setItem(0, 0,新QStandardItem(“张三")); & # 160;模型→setItem(0, 1,新的QStandardItem (3)); & # 160;模型→setItem(0、2、新QStandardItem(男)); & # 160;这→setModel(模型); }
QTableView移除数据
& # 8203;移除数据的常用函数有:
/*移除某行数据*/bool QAbstractItemModel:: removeRow (int行,const QModelIndex,父母=QModelIndex ())/*移除某列数据*/bool QAbstractItemModel:: removeColumn (int列,const QModelIndex,父母=QModelIndex ())
模型→removeRow(0);//移除第0行数据 模型→removeColumn(0);//移除第0列数据
QTableView插入数据
插入一行数据
空白QStandardItemModel: insertRow (int行,const QList例如:
QListQTableView数据变更信号处理
(信号)无效QAbstractItemModel:: dataChanged (const QModelIndex, topLeft, const QModelIndex, bottomRight, const QVector和角色=QVector ()); & # 8203;/* * topLeft bottomRight这两索引指的是表格中被更改数据的区域,如果只有一个数据被更改,那么topLeft等于bottomRight */ Qt GUI图形图像开发之Qt表格控件QTableView详细使用方法与实例