pyqt5 获取qtablewidget选中的行号
时间: 2023-06-11 17:10:28 浏览: 279
你可以使用 QTableWidget 的 selectedItems() 方法获取所有选中的 QTableWidgetItem 对象,然后再遍历这些对象获取它们所在的行号。
以下是一个示例代码,演示如何获取 QTableWidget 中选中行的行号:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
app = QApplication([])
# 创建 QTableWidget 对象
table = QTableWidget(5, 3)
# 设置表头
table.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
# 填充数据
table.setItem(0, 0, QTableWidgetItem('Alice'))
table.setItem(0, 1, QTableWidgetItem('25'))
table.setItem(0, 2, QTableWidgetItem('Female'))
table.setItem(1, 0, QTableWidgetItem('Bob'))
table.setItem(1, 1, QTableWidgetItem('30'))
table.setItem(1, 2, QTableWidgetItem('Male'))
table.setItem(2, 0, QTableWidgetItem('Charlie'))
table.setItem(2, 1, QTableWidgetItem('35'))
table.setItem(2, 2, QTableWidgetItem('Male'))
table.setItem(3, 0, QTableWidgetItem('David'))
table.setItem(3, 1, QTableWidgetItem('40'))
table.setItem(3, 2, QTableWidgetItem('Male'))
table.setItem(4, 0, QTableWidgetItem('Eva'))
table.setItem(4, 1, QTableWidgetItem('45'))
table.setItem(4, 2, QTableWidgetItem('Female'))
# 选中第1行和第3行
table.selectRow(0)
table.selectRow(2)
# 获取选中行的行号
selected_rows = []
for item in table.selectedItems():
if item.column() == 0: # 判断是否是第一列
row = item.row()
if row not in selected_rows:
selected_rows.append(row)
print(selected_rows) # 输出 [0, 2]
```
在上面的代码中,我们首先创建了一个 5 行 3 列的 QTableWidget,并填充了一些数据。然后我们选中第 1 行和第 3 行,最后通过遍历选中的 QTableWidgetItem 对象,获取它们所在的行号。注意我们只关心每行第一列的数据。输出结果为 [0, 2],表示选中的行号为 0 和 2。
阅读全文