QTableView模型类

Posted 五个板栗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QTableView模型类相关的知识,希望对你有一定的参考价值。

1.在界面上拖一个QTableView,写代码设置表格表头内容

QStandardItemModel *theModel;
QItemSelectionModel *theSelection;theModel->setHeaderData(0,Qt::Horizontal, "文件名称");
theModel = new QStandardItemModel(0,3,this); //数据模型
theSelection =new QItemSelectionModel(theModel); //选择模型
theModel->setHeaderData(0,Qt::Horizontal, "文件名称");
theModel->setHeaderData(1, Qt::Horizontal, "创建时间");
theModel->setHeaderData(2,Qt::Horizontal,"序号");
theModel->setItem(FileNumber,2,item);//设置三个列 0 1 2
//动态设置表格内容
if(Filename < 100)

theModel->setData(theModel->index(FileNumber,0),FileName);
QString str1 = datetime1.toString("yyyy-MM-dd");
QString str2 = datetime1.toString("hh:mm:ss");
QString str3 = str1 + QString("-")+str2;
theModel->setData(theModel->index(FileNumber,1),str3);
//动态添加第三列
theModel->setData(theModel->index(FileNumber,2),buf)

2.选择QTableView的一行或者某一个位置,获取单元格中的内容

注意如果ui界面上的QTableView,不要自己去自定义槽函数;连接信号,因为很麻烦,还不一定成功。

可以直接点击ui界面上的QTableView直接转到槽,选择响应的信号,会自动生成槽函数和连接信息,(如图所示)只需要在槽函数中实现获取单元格内容,也可将获取到的内容显示到你想要显示的位置即可。

QTableView模型类_信号

槽函数中写如下代码,就可获取到你选中行的第一列位置处的内容了,你也可以根据自己的需求,选择其他行列位置处的内容。

ui->tableView->setSelectionBehavior(QTableView::SelectRows);
QAbstractItemModel *lmodel = ui->tableView->model();
QModelIndex lindex = lmodel->index(index.row(),1);
QVariant datatemp= lmodel->data(lindex);
StrLangName = lmodel->data(index).toString();
ui->lineEditSelect->setText(StrLangName);

3.效果图

QTableView模型类_槽函数_02


以上是关于QTableView模型类的主要内容,如果未能解决你的问题,请参考以下文章

如何从模型内部选择 QTableView 索引或行

底层模型更改时如何在 QTableView 中禁用自动滚动到顶部?

Qt入门系列开发教程高级控件篇QTableView表格视图

PySide + SQLAlchemy 中 QTableView 的“模型”设计

Qt模型/视图和QTableView的基本概念

qtableview的表头怎么改