【问题标题】:How to list items as groups in QListWidget如何在 QListWidget 中将项目列为组
【发布时间】:2015-02-16 06:53:34
【问题描述】:

是否可以分组设置 QListWidget 项。

例如,如果我将文件夹的内容添加到列表小部件。我想显示文件夹组中的所有文件夹和文件组中的文件。如下图所示。

有没有可能。

【问题讨论】:

    标签: python pyqt4 qlistwidget


    【解决方案1】:

    为每个组创建一个包含所有项目的列表,按任意属性对列表进行排序,然后按所需顺序将项目组添加到列表小部件。可以在组之间或组前添加分隔符或标题,组可以得到不同的样式。

    例如您的文件/文件夹组:

        files.sort()            # list of files
        folders.sort()          # list of folders
    
        for f in folders:
            item = QtWidgets.QListWidgetItem()
            item.setIcon(QtGui.QIcon('icon1.xpm'))
            item.setText(f)
            # set further properties  like font, background ...
            item.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled)
            self.listWidget.addItem(item)
    
        item = QtWidgets.QListWidgetItem()          # delimiter
        item.setText('-----------------------')
        item.setFlags(QtCore.Qt.NoItemFlags)        # item should not be selectable
        self.listWidget.addItem(item)
    
        for f in files:
            item = QtWidgets.QListWidgetItem()
            item.setIcon(QtGui.Qicon('icon2.xpm'))
            item.setText(f)
            # set further properties   like font, background ...  
            item.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled)
            self.listWidget.addItem(item) 
    

    对于文件和文件夹,QTreeView/QFileSystemModel 可能是另一种解决方案。

    以相应的方式使用 QTableWidget 可以将项目分组为行:

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 2021-08-25
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      相关资源
      最近更新 更多