㈠ Qt模型視圖框架:QTableWidget、QTableView、QListWidgetItem
QTableWidget
QTableWidget 是一個標準的表格小部件,用於顯示由 QTableWidgetItem 提供的項目。
常用信號包括:
- cellActivated(int row, int column): 當行和列指定的單元格被激活時發出此信號。
- cellChanged(int row, int column): 當由行和列指定的單元格中的項目數據發生更改時,發出此信號。
- cellClicked(int row, int column): 每當單擊表格中的單元格時,發出此信號。
- cellDoubleClicked(int row, int column): 每當雙擊表格中的單元格時,發出此信號。
- cellEntered(int row, int column): 當滑鼠游標進入單元格時發出此信號。
- cellPressed(int row, int column): 每當按下表格中的單元格時,發出此信號。
- currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn): 當前單元格發生變化時,發出此信號。
- currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous): 當前項目發生變化時,發出此信號。
- itemActivated(QTableWidgetItem *item): 當指定的項目被激活時發出此信號。
- itemChanged(QTableWidgetItem *item): 每當 item 的數據發生變化時,發出此信號。
- itemClicked(QTableWidgetItem *item): 每當單擊表中的項目時,發出此信號。
- itemDoubleClicked(QTableWidgetItem *item): 每當雙擊表中的項目時,發出此信號。
- itemEntered(QTableWidgetItem *item): 當滑鼠游標進入一個項目時,發出此信號。
- itemPressed(QTableWidgetItem *item): 每當按下表中的項目時,發出此信號。
- itemSelectionChanged(): 只要選擇發生變化,就發出此信號。
常用函數包括:
- clear()/clearContents(): 清除視圖中的所有項目,刪除所有選擇和標題。
- insertColumn(int column)/insertRow(int row): 插入空列/行。
- removeColumn(int column)/removeRow(int row): 從表中刪除列/行。
- scrollToItem(const QTableWidgetItem *item): 如有必要,滾動視圖以確保項目可見。
- column(const QTableWidgetItem *item)/row(const QTableWidgetItem *item): 獲取item所在的列/行。
- findItems(const QString &text, Qt::MatchFlags flags): 使用給定的標志查找與文本匹配的項目。
- indexFromItem(const QTableWidgetItem *item): 返回與給定項目關聯的 QModelIndex。
- itemFromIndex(const QModelIndex &index): 返回指向與給定索引關聯的 QTableWidgetItem 的指針。
- itemAt(const QPoint &point): 返回指向給定點的項目的指針。
- itemPrototype(): 設置表的項目原型為指定的項目。
- items(const QMimeData *data): 返回指向包含在數據對象中的項目的指針列表。
- removeCellWidget(int row, int column): 設置要在給定行和列的單元格中顯示的給定小部件,並將小部件的所有權傳遞給表格。
- selectedItems(): 返回所有選定項目的列表。
- selectedRanges(): 返回所有選定范圍的列表。
- setHorizontalHeaderItem(int column, QTableWidgetItem *item): 設置標題 item。
- setHorizontalHeaderLabels(const QStringList &labels): 設置標題標簽。
- sortItems(int column, Qt::SortOrder order): 根據列和順序對表小部件中的所有行進行排序。
- takeHorizontalHeaderItem(int column): 從標題中刪除列中的水平標題項目而不刪除item。
- takeItem(int row, int column): 從表中刪除行和列的項目而不刪除item。
- visualItemRect(const QTableWidgetItem *item): 返回 item 處的 item 占據的視口上的矩形。
QTableView
QTableView 實現了表格視圖,用於顯示模型中的項目。
屬性成員包括:
- cornerButtonEnabled : bool: 保存左上角的按鈕是否啟用,默認為 true。
- gridStyle : Qt::PenStyle: 保存繪制網格時使用的樣式。
- showGrid : bool: 保存是否顯示網格。
- sortingEnabled : bool: 保存是否啟用排序,默認值為 false。
- wordWrap : bool: 包含項目文本自動換行策略,默認為 true。
常用函數包括:
- hideColumn(int column)/hideRow(int row): 隱藏列/行。
- resizeColumnToContents(int column)/resizeColumnsToContents(): 根據用於呈現列中每個項目的委託的大小提示調整列/行的大小。
- selectColumn(int column)/selectRow(int row): 選擇列/行。
- sortByColumn(int column, Qt::SortOrder order): 按給定列中的值和順序對模型進行排序。
- clearSpans(): 刪除表視圖中的所有行和列跨度。
- columnAt(int x)/rowAt(int y): 返回內容坐標中給定 x 坐標 x 所在的列/行。
- columnViewportPosition(int column)/rowViewportPosition(int row): 返回給定列的內容坐標中的 x 坐標/
返回給定行內容坐標中的 y 坐標。
- columnWidth(int column)/rowHeight(int row): 列的寬度/行的高度。
QListWidgetItem
QListWidgetItem 代表 QListWidget 中的單個項目,每個項目可以包含多條信息,並將適當地顯示它們。
常用成員函數包括:
- background()/setBackground(const QBrush &brush): 獲取或設置背景畫刷。
- checkState()/setCheckState(Qt::CheckState state): 獲取或設置選中狀態。
- clone(): 創建項目的副本。
- data(int role)/setData(int role, const QVariant &value): 獲取或設置角色的項目數據。
- flags()/setFlags(Qt::ItemFlags flags): 返回或設置此項目的項目標志。
- foreground()/setForeground(const QBrush &brush): 獲取或設置前景畫刷。
- setIcon(const QIcon &icon)/icon(): 設置或獲取圖標。
- setHidden(bool hide)/isHidden(): 設置或獲取是否隱藏。
- isSelected()/setSelected(bool select): 設置或獲取是否選中。
- listWidget(): 獲取所屬的QListWidget。
- setStatusTip(const QString &statusTip): 設置列表項的狀態提示。
- setToolTip(const QString &toolTip): 設置列表項的工具提示。