繁体   English   中英

如何在QListWidget中将项目列为组

[英]How to list items as groups in QListWidget

是否可以在组中设置QListWidget项。

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

在此输入图像描述

可能吗。

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

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

    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项可以按行分组: 按行分组的项目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM