目錄
代碼示例:使用QTableWidget
Table Widget
使? QTableWidget 表??個表格控件. ?個表格中包含若??, 每???包含若?列.
表格中的每個單元格, 是?個 QTableWidgetItem 對象.
QTableWidget 核??法
方法 | 說明 |
---|---|
item(int row, int column) | 根據行數數列獲取指定的 QTableWidgetItem* |
setItem(int row, int column, QTableWidget*) | 根據行數數列設置表格中的元素 |
currentItem() | 返回被選中的元素 QTableWidgetItem* |
currentRow() | 返回被選中元素是第幾行 |
currentColumn() | 返回被選中元素是第幾列 |
row(QTableWidgetItem*) | 獲取指定 item 是第幾行 |
column(QTableWidgetItem*) | 獲取指定 item 是第幾列 |
rowCount() | 獲取行數 |
columnCount() | 獲取列數 |
insertRow(int row) | 在第 row 行處插入新行 |
insertColumn(int column) | 在第 column 列插入新列 |
removeRow(int row) | 刪除第 row 行 |
removeColumn(int column) | 刪除第 column 列 |
setHorizontalHeaderItem(int column, QTableWidget*) | 設置指定列的表頭 |
setVerticalHeaderItem(int row, QTableWidget*) | 設置指定行的表頭 |
QTableWidgetItem 核?信號
信號 | 說明 |
---|---|
cellClicked(int row, int column) | 點擊單元格時觸發 |
cellDoubleClicked(int row, int column) | 雙擊單元格時觸發 |
cellEntered(int row, int column) | 鼠標進入單元格時觸發 |
currentCellChanged(int row, int column, int previousRow, int previousColumn) | 選中不同單元格時觸發 |
QTableWidgetItem 核??法
方法 | 說明 |
---|---|
row() | 獲取當前是第幾行 |
column() | 獲取當前是第幾列 |
setText(const QString&) | 設置文本 |
setTextAlignment(int) | 設置文本對齊 |
setIcon(const QIcon&) | 設置圖標 |
setSelected(bool) | 設置被選中 |
setSizeHints(const QSize&) | 設置尺寸 |
setFont(const QFont&) | 設置字體 |
代碼示例:使用QTableWidget
1)在界面上創建QTableWidget和四個按鈕,一個輸入框
注意:QTableWidget是QTableView的子類,功能比QTableView
更豐富,咱們使用QTableWidget即可.
可以通過QtDesigner手動添加(雙擊控件or右鍵編輯)
2) 編寫 widget.cpp 構造函數, 構造表格中的初始數據.

3) 編寫按鈕的 slot 函數

4) 執?程序, 即可完成表格的基本操作
默認情況下, 單元格中的內容直接就是可編輯的.如果不想讓??編輯, 可以設置 ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
如果當前表格中的數據是固定的
完全就可以通過圖形化的方式來進行編輯
但是實際開發中,很多時候數據是從文件/網絡來加載的.此時通過圖形化編輯不合適
了.