关于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);


}
原文地址:https://www.cnblogs.com/justwake/p/justwake_qtableview.html