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直接转到槽,选择响应的信号,会自动生成槽函数和连接信息,(如图所示)只需要在槽函数中实现获取单元格内容,也可将获取到的内容显示到你想要显示的位置即可。
槽函数中写如下代码,就可获取到你选中行的第一列位置处的内容了,你也可以根据自己的需求,选择其他行列位置处的内容。
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模型类的主要内容,如果未能解决你的问题,请参考以下文章
底层模型更改时如何在 QTableView 中禁用自动滚动到顶部?