2017-02-10 47 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。

相關問題