首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从QListView中删除选中的行?

从QListView中删除选中的行可以通过以下步骤实现:

  1. 获取选中的行的索引:使用QListView的selectedIndexes()方法可以获取到选中的行的索引列表。
  2. 删除选中的行:遍历选中的行的索引列表,使用QAbstractItemModel的removeRow()方法逐个删除选中的行。

下面是一个示例代码:

代码语言:txt
复制
# 导入必要的模块
from PyQt5.QtWidgets import QApplication, QMainWindow, QListView, QVBoxLayout, QWidget, QPushButton
from PyQt5.QtCore import Qt, QAbstractListModel

class MyListModel(QAbstractListModel):
    def __init__(self, data):
        super().__init__()
        self.data = data

    def rowCount(self, parent):
        return len(self.data)

    def data(self, index, role):
        if role == Qt.DisplayRole:
            return self.data[index.row()]

    def removeRow(self, row, parent):
        self.beginRemoveRows(parent, row, row)
        del self.data[row]
        self.endRemoveRows()

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 创建数据模型
        self.model = MyListModel(['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'])

        # 创建列表视图
        self.list_view = QListView()
        self.list_view.setModel(self.model)

        # 创建删除按钮
        self.delete_button = QPushButton('删除选中行')
        self.delete_button.clicked.connect(self.delete_selected_rows)

        # 创建布局并将列表视图和按钮添加到布局中
        layout = QVBoxLayout()
        layout.addWidget(self.list_view)
        layout.addWidget(self.delete_button)

        # 创建主窗口部件并设置布局
        widget = QWidget()
        widget.setLayout(layout)

        # 设置主窗口的中心部件
        self.setCentralWidget(widget)

    def delete_selected_rows(self):
        # 获取选中的行的索引列表
        selected_indexes = self.list_view.selectedIndexes()

        # 遍历选中的行的索引列表并逐个删除
        for index in selected_indexes:
            self.model.removeRow(index.row(), index.parent())

if __name__ == '__main__':
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()

在这个示例代码中,我们首先创建了一个自定义的数据模型MyListModel,继承自QAbstractListModel,用于提供数据给列表视图显示。然后,我们创建了一个主窗口MainWindow,其中包含一个列表视图和一个删除按钮。点击删除按钮时,会调用delete_selected_rows方法,该方法会获取选中的行的索引列表,并逐个调用数据模型的removeRow方法删除选中的行。最后,我们使用QApplication创建了一个应用程序对象,并显示主窗口。

这个示例中使用了PyQt5库来实现界面和逻辑的部分,你可以根据自己的需求选择其他的GUI库或者编程语言来实现相同的功能。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体的产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分19秒

44.尚硅谷_硅谷商城[新]_在适配器中删除选中的item.avi

6分27秒

083.slices库删除元素Delete

4分26秒

068.go切片删除元素

22分13秒

JDBC教程-01-JDBC课程的目录结构介绍【动力节点】

6分37秒

JDBC教程-05-JDBC编程六步的概述【动力节点】

7分57秒

JDBC教程-07-执行sql与释放资源【动力节点】

6分0秒

JDBC教程-09-类加载的方式注册驱动【动力节点】

25分56秒

JDBC教程-11-处理查询结果集【动力节点】

19分26秒

JDBC教程-13-回顾JDBC【动力节点】

15分33秒

JDBC教程-16-使用PowerDesigner工具进行物理建模【动力节点】

7分54秒

JDBC教程-18-登录方法的实现【动力节点】

19分27秒

JDBC教程-20-解决SQL注入问题【动力节点】

领券