pyqt5-QTableWidget表格组件
1、介绍
QTableWidget,表格组件。
2、行和列
2.1 行数和列数
setRowCount(self, rows: int)
setColumnCount(self, columns: int)
- 设置行数或列数
- 如果行数为0或者列数为0时,表格不显示任意单元格。
- 一般,将行设置为0,可以起到删除作用
rowCount(self) -> int
columnCount(self) -> int
- 获取行数或列数
2.2 current
currentColumn(self) -> int
currentRow(self) -> int
currentItem(self) -> QTableWidgetItem
- 当前的行索引、当前的列索引、当前的单元格
(1)相关性
当前项由当前行索引和列索引决定,如果当前的行索引或列索引为-1,则当前项为None
(2)交互影响
- 点击单元格,会改变当前行索引和当前列索引
- 点击表格空白区域或者表格外区域,不会丢失当前行索引和当前列索引
- 点击水平标题的某单元格时,当前行索引为0,当前列索引即点击的列索引。点击垂直标题单元格时类似。
- 点击左上角格子时,当前行索引和列索引都为0
(3)其它影响
- 初始时,无论是否设置了行数和列数,以及设置单元格内容,当前行索引和列索引为-1。
- clear方法会置当前行索引和列索引为-1
- 假设当前行索引为n,删除其后的行不影响当前行索引,删除当前行及其前的行会使当前行索引-1。列索引类似
2.3 删除
clear(self)
- 该方法作用是清除各单元格的内容,其不影响行数和列数
- 该方法同时会清除当前项状态,会将当前的行索引和列索引置为-1
removeRow(self, row: int)
removeColumn(self, column: int)
- 根据行索引或列索引,删除对应行或列。
- 指定索引超出范围时,不执行删除操作也不报错。
2.4 增加
insertRow(self, row: int)
insertColumn(self, column: int)
- 在指定行索引处增加行,当前行及其后的行后移。列的处理类似
- 指定超出范围时,不执行增加也不报错
- 正常包括的范围是0-行数,指定在行数的索引处插入,相当于末尾追加。而0表示在开头前置
对当前项的影响:
- 和删除操作类似,如果操作的索引小于等于当前项的索引,则会使当前项的索引+1。反之则无影响
column(self, item: QTableWidgetItem) -> int
- 获取指定单元格的列索引
row(self, item: QTableWidgetItem) -> int
- 获取指定单元格的行索引
3、单元格
item(self, row: int, column: int) -> QTableWidgetItem
- 获取指定行和列索引的单元格对象
setItem(self, row: int, column: int, item: QTableWidgetItem)
- 为指定行和列索引,设置单元格对象
- 如果为设置单元格对象,那么行和列对应的空间获取到的值为None
4、事件
currentItemChanged(self, current: QTableWidgetItem, previous: QTableWidgetItem)
- 初次点击时,一般previous为None
- 如果进行删除操作,current可能最终获取到None