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模型类

发表评论

相关文章