Qt GUI图形图像开发之Qt表格控件QTableView详细使用方法与实例

  

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函数设置视图的数据模型为模型,显示出来,如图:

  

 Qt GUI图形图像开发之Qt表格控件QTableView详细使用方法与实例

  

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      

例如:         QList      

QTableView数据变更信号处理

  

     (信号)无效QAbstractItemModel:: dataChanged (const QModelIndex, topLeft, const QModelIndex, bottomRight, const QVector和角色=QVector());   & # 8203;/*   * topLeft bottomRight这两索引指的是表格中被更改数据的区域,如果只有一个数据被更改,那么topLeft等于bottomRight   */

Qt GUI图形图像开发之Qt表格控件QTableView详细使用方法与实例