无法使用要显示的自定义窗口小部件获取ListItem

时间:2017-02-10 02:46:53

标签: python qt pyside

我在使用自定义小部件显示项目以显示在列表小部件中时遇到问题。这些项目在下面的示例中显示为空白...

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

1 个答案:

答案 0 :(得分:0)

看起来QlistWidget不会做你想要的,所以你需要从较低的层面接近它。

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

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