QListview删除行
时间: 2023-09-02 21:14:32 浏览: 149
要在QListView中删除行,你可以使用QStandardItemModel来管理数据,并使用其方法来删除行。
以下是一个示例代码,演示如何删除QListView中的选定行:
```python
from PyQt5.QtWidgets import QApplication, QListView, QPushButton, QVBoxLayout, QWidget, QMessageBox
from PyQt5.QtGui import QStandardItemModel, QStandardItem
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.list_view = QListView()
self.delete_button = QPushButton("删除选定行")
layout = QVBoxLayout()
layout.addWidget(self.list_view)
layout.addWidget(self.delete_button)
self.model = QStandardItemModel()
self.list_view.setModel(self.model)
self.delete_button.clicked.connect(self.delete_selected_row)
self.populate_list()
self.setLayout(layout)
def populate_list(self):
items = ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5']
for item_text in items:
item = QStandardItem(item_text)
self.model.appendRow(item)
def delete_selected_row(self):
selected_indexes = self.list_view.selectedIndexes()
if not selected_indexes:
QMessageBox.warning(self, "警告", "请先选择要删除的行")
return
# 获取选定行的索引
for index in selected_indexes:
row = index.row()
self.model.removeRow(row)
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
这个示例中,我们创建了一个QListView和一个删除按钮。使用QStandardItemModel来管理数据,并将其设置为QListView的模型。在`populate_list`方法中,我们添加了一些初始数据到模型中。
在`delete_selected_row`方法中,我们首先获取选定行的索引,然后使用`removeRow`方法从模型中删除这些行。
当用户点击"删除选定行"按钮时,会调用`delete_selected_row`方法来删除选定的行。如果没有选定行,则会弹出一个警告框。
请注意,这只是一个简单的示例,你可以根据自己的需求进行扩展和修改。
阅读全文