当前位置: 代码迷 >> python >> 无法获得带有自定义窗口小部件的ListItems来显示
  详细解决方案

无法获得带有自定义窗口小部件的ListItems来显示

热度:112   发布时间:2023-06-13 13:39:13.0

我在获取带有自定义小部件的项目以显示在列表小部件中时遇到问题。 在以下示例中,这些项目显示为空白...

from PySide2 import QtWidgets

class ItemWidget(QtWidgets.QWidget):
  def __init__(self,parent = None):
    super(ItemWidget, self).__init__(parent)
    layout = QtWidgets.QHBoxLayout()
    self.setLayout(layout)
    self.checkBox = QtWidgets.QCheckBox()
    self.label = QtWidgets.QLabel('test')
    layout.addWidget(self.checkBox)
    layout.addWidget(self.label)

class ListWidget(QtWidgets.QListWidget):
    def __init__(self,parent = None):
        super(ListWidget,self).__init__(parent)
        self.initUI()

    def initUI(self):
        for i in range(10):
            item = QtWidgets.QListWidgetItem()
            self.addItem(item)
            widget = ItemWidget(self)
            self.setItemWidget(item,widget)
            self.show()

lister = ListWidget()

看起来QlistWidget不会执行您想要的操作,因此您需要从较低级别进行处理。

此功能只能用于在列表小部件项目的位置显示静态内容 如果要显示自定义动态内容或实现自定义编辑器小部件,请改用PySide.QtGui.QListView和子类PySide.QtGui.QItemDelegate。

  相关解决方案