QTableWidget 获取当前选中行数 并删除
时间: 2023-05-25 07:03:10 浏览: 121
假设需要删除 QTableWidget 中选中的所有行,可以采用如下代码:
```python
# 获取选中的行
selected_indexes = my_table_widget.selectedIndexes()
selected_rows = set(index.row() for index in selected_indexes)
# 删除选中的行
for row in sorted(selected_rows, reverse=True):
my_table_widget.removeRow(row)
```
首先,我们通过 `selectedIndexs()` 方法获取所有选中单元格的索引,其中包括它们所在的行和列。然后,我们使用集合来存储所有选中的行号。
在删除操作中,我们采用倒序遍历的方式,因为从上往下删除行会导致行号的改变,从而影响后续行的删除操作。最后,通过 `removeRow()` 方法删除选中的行。
相关问题
QtableWidget选中删除行
可以使用以下步骤在QTableWidget中选中并删除行:
1. 获取当前选中的行号
```
selected_row = tableWidget.currentRow()
```
2. 如果选中行不为空,则删除该行
```
if selected_row != -1:
tableWidget.removeRow(selected_row)
```
完整的代码示例:
```
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QWidget, QVBoxLayout, QPushButton
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.tableWidget = QTableWidget()
self.tableWidget.setRowCount(4) # 设置行数
self.tableWidget.setColumnCount(2) # 设置列数
# 在单元格中添加数据
for row in range(4):
for column in range(2):
item = QTableWidgetItem("Cell %d-%d" % (row, column))
self.tableWidget.setItem(row, column, item)
self.delete_button = QPushButton('删除选中行')
self.delete_button.clicked.connect(self.delete_selected_row)
layout = QVBoxLayout()
layout.addWidget(self.tableWidget)
layout.addWidget(self.delete_button)
self.setLayout(layout)
def delete_selected_row(self):
selected_row = self.tableWidget.currentRow()
if selected_row != -1:
self.tableWidget.removeRow(selected_row)
if __name__ == '__main__':
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在此示例中,我们创建了一个QTableWidget、一个QPushButton,并将它们放在一个垂直布局中。当用户点击删除按钮时,我们将调用delete_selected_row函数,该函数会获取当前选中的行号,并在选中行不为空时删除该行。
得到tablewidge选中行的行数
要获取QTableWidget中当前选中行的行数,可以使用selectedIndexes()方法来获取所有选中单元格的索引,然后使用row()方法来获取每个索引的行号,最后使用set()方法从列表中删除重复的行号并返回行数。
以下是获取选中行的行数的示例代码:
```python
# 获取选中行的行数
selected_indexes = tableWidget.selectedIndexes()
selected_rows = []
for index in selected_indexes:
selected_rows.append(index.row())
selected_rows = list(set(selected_rows))
selected_rows_count = len(selected_rows)
```
在上面的代码中,我们首先使用selectedIndex()方法获取所有选中单元格的索引,然后使用循环来获取每个索引的行号,并将其添加到selected_rows列表中。然后,我们使用set()方法从列表中删除重复的行号,并使用len()方法获取行数。最后,我们将选中行的行数存储在selected_rows_count变量中。
阅读全文