각각 맞춤 위젯 인 항목의 목록을 디자인하려고합니다 (각 항목에 이미지와 텍스트 세 개를 표시하고 싶지는 않습니다). PyQt에서 함수 을 사용하여 목록에 항목을 추가 할 수 있습니다. 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)