qtablewidget获取选中行号
时间: 2023-04-25 10:02:37 浏览: 187
QTableWidget类提供了selectedRanges()和selectedIndexes()两个函数来获取选中的行号。
使用selectedRanges()函数可以获取选中的区间,区间中包含了行号和列号信息。
使用selectedIndexes()函数可以获取选中的每个单元格的索引,索引中包含了行号和列号信息,可以遍历索引列表来获取选中的行号。
示例代码如下:
```
QList<QTableWidgetSelectionRange> ranges = tableWidget->selectedRanges();
for (int i = 0; i < ranges.size(); ++i) {
int topRow = ranges[i].topRow();
int bottomRow = ranges[i].bottomRow();
// 使用topRow和bottomRow
}
QModelIndexList indexes = tableWidget->selectedIndexes();
for (int i = 0; i < indexes.size(); ++i) {
int row = indexes[i].row();
// 使用row
}
```
相关问题
QTableWidget获取选中的行号
可以使用QTableWidget的selectedItems()方法获取当前选中的单元格列表,然后遍历列表获取行号。以下是示例代码:
```python
selected_cells = tableWidget.selectedItems()
rows = set()
for cell in selected_cells:
rows.add(cell.row())
print("选中的行号是:", list(rows))
```
如果您需要更多关于QTableWidget的帮助,请随时问我!
pyqt5 获取qtablewidget选中的行号
你可以使用 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。
阅读全文