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
posted @ 2023-10-01 14:42  挖洞404  阅读(199)  评论(0编辑  收藏  举报