请帮我写一个pyqt6的QTablewidget删除一些行数的代码
时间: 2024-04-22 11:27:21 浏览: 11
好的,以下是一个简单的示例,演示如何使用PyQt6删除表格中的行数:
```python
from PyQt6.QtWidgets import (QApplication, QTableWidget, QTableWidgetItem, QPushButton, QVBoxLayout, QWidget)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.table = QTableWidget()
self.table.setRowCount(5)
self.table.setColumnCount(3)
for i in range(5):
for j in range(3):
item = QTableWidgetItem("Item %d %d" % (i+1, j+1))
self.table.setItem(i, j, item)
self.btn = QPushButton('Delete Rows')
self.btn.clicked.connect(self.deleteRows)
vbox = QVBoxLayout()
vbox.addWidget(self.table)
vbox.addWidget(self.btn)
self.setLayout(vbox)
self.setGeometry(300, 300, 350, 300)
self.show()
def deleteRows(self):
selected_rows = []
for item in self.table.selectedItems():
if item.row() not in selected_rows:
selected_rows.append(item.row())
selected_rows.sort(reverse=True)
for row in selected_rows:
self.table.removeRow(row)
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec()
```
在上面的示例中,我们创建了一个QTableWidget对象,并将其设置为5行3列的表格。我们还创建了一个名为“Delete Rows”的QPushButton,并将其连接到名为“deleteRows”的槽上。
在删除行的槽函数中,我们首先获取选中的所有单元格,然后将它们所在的行按照从大到小的顺序进行排序。最后,我们遍历排序后的行号,使用`removeRow()`方法逐个删除行。
请注意,这只是一个简单的示例,实际使用中还需要根据具体情况进行修改。