私はカスタムウィジェットであるアイテムのリストを設計しようとしています(イメージと各アイテムに3つのテキストを表示する必要はありません)。 PyQtでは、関数addItemを使用して、リストに項目を追加することができます。これは、引数として、QListWidgetItemとなります。ListWidget - PyQt5で膨らんだカスタムウィジェット
私はカスタム定義ウィジェットをQListWidetItemにキャストしようとしましたが、成功しませんでした。私は、次のコードの塊を試してみました:
listWidget = QtWidgets.QListWidget(self.centralwidget)
item = QListWidgetItem(self.listWidget)
custom_item = CustomWidget()
listWidget.addItem(item)
listWidget.setItemWidget(item, item_widget)
リストは空のリストを表示し、私は上記のコードでcustom_itemを膨張させることはありませんおりますので、これが期待されています。これをPyQTで修正するには?
私はわかりませんが、カスタムウィジェットは、関連するかもしれない:私はあなたのコードから気づく何
class CustomWidget(QWidget):
def __init__(self, user):
QWidget.__init__(self)
self.user = user
self.horizontalLayoutWidget = QtWidgets.QWidget()
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 211, 41))
self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.UserImage = QtWidgets.QLabel(self.horizontalLayoutWidget)
self.UserImage.setText("This is an Image")
self.UserImage.setObjectName("UserImage")
self.horizontalLayout.addWidget(self.UserImage)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.UserName = QtWidgets.QLabel(self.horizontalLayoutWidget)
self.UserName.setText("My name is jeff")
self.UserName.setObjectName("UserName")
self.verticalLayout.addWidget(self.UserName)
self.UserStatus = QtWidgets.QLabel(self.horizontalLayoutWidget)
self.UserStatus.setText("I am available")
self.UserStatus.setObjectName("UserStatus")
self.verticalLayout.addWidget(self.UserStatus)
self.horizontalLayout.addLayout(self.verticalLayout)
self.horizontalLayout.setStretch(0, 1)
self.horizontalLayout.setStretch(1, 3)