關於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);


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM