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); }
