关于QTableView的一些用法
1.设置表头
QStandardItemModel * head = new QStandardItemModel(); head->sethorizontalHeaderItem(0,new QStandardItem(tr(""))); ... ... ui->tableView->setModel(head);
2.设置各列的宽度
ui->tableView->setColumnWidth(列编号,列宽度);
3.设置列宽度固定,不能进行拖动
ui->tableView->horizontalHeader()->setResizeMode(列编号,QHeaderView::Fixed);
4.设置列宽自适应剩余宽度
ui->tableView->horizontalHeader()->setResizeMode(列编号,QHeaderView::Stretch);
5.设置列根据内容自适应宽度
ui->tableView->resizeColumnToContents(列编号);
一般设置tableView步骤为:设置表头-设置固定列自适应内容宽度-设置固定列宽度-设置固定列宽度固定-设置其他列自适应剩余宽度。
6.设置表格只读,不能进行编辑操作
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
7.动态增加表格内容
head->setItem(行号,列号,new QStandardItem(tr(""))); ... ... ...
8.设置选中操作为选中全行模式
ui->tableView->setSelectBehaviour(QAbstractItemView::SelectRows);
9.获取tableView单击行的内容
信号/槽如下:
connect(ui->showArea,SIGNAL(clicked(QModelIndex)),this,SLOT(table_view_clicked(QModelIndex)));
处理事件:
void LianHu::table_view_clicked(const QModelIndex &index) { QAbstractItemModel *modessl = ui->showArea->model(); int curRow = index.row(); QModelIndex indextemp = modessl->index(curRow,2);//遍历第一行的所有列 //这个是一个单元格的值。tostring()----ok QString datatemp = modessl->data(indextemp).toString(); ui->showContent->setText(datatemp); }