无法获取要显示的带有自定义小部件的ListItems

2024-10-06 16:22:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在获取带有自定义小部件的项目以显示在列表小部件中时遇到问题。在下面的示例中,项目显示为空。。。你知道吗

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()

Tags: 项目selfnoneinit部件defitemclass
1条回答
网友
1楼 · 发布于 2024-10-06 16:22:45

看起来QlistWidget不会做你想做的事情,所以你需要从一个较低的层次来处理它。你知道吗

PySide.QtGui.QListWidget.setItemWidget(item, widget)

此函数只能用于在列表小部件项的位置显示静态内容。如果要显示自定义动态内容或实现自定义编辑器小部件,请使用PySide.QtGui.QListView和子类PySide.QtGui.QItemDelegate代理相反。你知道吗

相关问题 更多 >