鄭州網站建設漢獅網絡營銷方式
1、概述
QTableView 是 Qt 框架中的一個高級視圖類,用于以表格形式展示二維數(shù)據(jù)。它基于 QAbstractItemView,并與模型(通常是 QAbstractTableModel 或 QStandardItemModel)結合使用,以實現(xiàn)數(shù)據(jù)的展示和交互。QTableView 提供了靈活的列寬調整、行高設置、單元格編輯以及數(shù)據(jù)排序和篩選等功能。它支持多種選擇模式,如單選、多選和擴展選擇,以及通過委托(delegates)來自定義單元格的渲染和編輯行為。
2、重要方法
QTableView 提供了豐富的 API 來管理和展示數(shù)據(jù),以下是一些重要的方法:
- setModel:設置數(shù)據(jù)模型,將數(shù)據(jù)模型與視圖關聯(lián)起來。
- selectionModel?和?setSelectionModel:獲取和設置選擇模型,用于管理用戶的選擇。
- horizontalHeader?和?verticalHeader:獲取表格的水平和垂直表頭,用于自定義表頭的外觀和行為。
- resizeColumnsToContents?和?resizeRowsToContents:根據(jù)內容自動調整列寬和行高。
- setSortingEnabled:啟用或禁用排序功能。
- setEditTriggers:設置編輯觸發(fā)器,決定何時可以編輯單元格。
- setCurrentIndex?和?currentIndex:設置和獲取當前選中的單元格。
- setSpan:設置單元格的跨行和跨列數(shù)。
3、重要信號
QTableView 發(fā)射多種信號來響應用戶的操作和數(shù)據(jù)的變更,以下是一些重要的信號:
- clicked:單擊某個單元格時發(fā)射此信號。
- doubleClicked:雙擊某個單元格時發(fā)射此信號。
- pressed:按下鼠標按鈕時發(fā)射此信號。
- released:釋放鼠標按鈕時發(fā)射此信號。
- selectionChanged:選擇發(fā)生變化時發(fā)射此信號。
- currentChanged:當前單元格發(fā)生變化時發(fā)射此信號。
- cellClicked、cellDoubleClicked、cellPressed、cellReleased:這些信號提供了更細粒度的控制,允許開發(fā)者根據(jù)單元格的位置和索引來響應事件。
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{setWindowTitle("QTableView Example");resize(600, 400);// 創(chuàng)建數(shù)據(jù)模型QStandardItemModel *model = new QStandardItemModel;model->setHorizontalHeaderLabels({"Name", "Age", "Occupation"});QList<QStandardItem *> row1;row1 << new QStandardItem("Alice") << new QStandardItem("30") << new QStandardItem("Engineer");model->appendRow(row1);QList<QStandardItem *> row2;row2 << new QStandardItem("Bob") << new QStandardItem("25") << new QStandardItem("Designer");model->appendRow(row2);QList<QStandardItem *> row3;row3 << new QStandardItem("Charlie") << new QStandardItem("35") << new QStandardItem("Manager");model->appendRow(row3);QList<QStandardItem *> row4;row4 << new QStandardItem("David") << new QStandardItem("40") << new QStandardItem("Director");model->appendRow(row4);// 創(chuàng)建表視圖QTableView *tableView = new QTableView;tableView->setModel(model);tableView->resizeColumnsToContents(); // 自動調整列寬tableView->setSelectionMode(QAbstractItemView::SingleSelection); // 設置選擇模式為單選tableView->setSortingEnabled(true); // 啟用排序功能tableView->setShowGrid(true); // 顯示網格線// 布局管理QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(tableView);QWidget *centralWidget = new QWidget;centralWidget->setLayout(layout);setCentralWidget(centralWidget);
}
覺得有幫助的話,打賞一下唄。。
? ? ? ? ? ?