2017-02-10 10 views
0

カスタムウィジェットを含むアイテムをリストウィジェットに表示する際に問題が発生しています。アイテムは...以下の例では、空白表示さ表示するカスタムウィジェットを持つListItemsを取得できません

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

'item.setSizeHint(widget.sizeHint())'。 – ekhumoro

答えて

0

それはあなたがやりたいことはありませんQlistWidgetのように見えるので、あなたは下のレベルから、それにアプローチする必要があります。

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

この関数はリストウィジェットアイテムの代わりに静的なコンテンツを表示するために使用する必要があります。カスタムの動的コンテンツを表示したり、カスタムエディタウィジェットを実装する場合は、代わりにPySide.QtGui.QListViewを使用し、代わりにPySide.QtGui.QItemDelegateをサブクラス化します。

関連する問題