Ich versuche ein QListWidget zu erstellen, in dem jedes Element ein einfaches Widget ist, das Text und eine Drucktaste enthält. Ich benutze folgendes:QWidget zu QListWidget hinzufügen
itemN = QtGui.QListWidgetItem()
#Create widget
widget = QtGui.QWidget()
widgetText = QtGui.QLabel("I love PyQt!")
widgetButton = QtGui.QPushButton("Push Me")
widgetLayout = QtGui.QHBoxLayout()
widgetLayout.addWidget(widgetText)
widgetLayout.addWidget(widgetButton)
widgetLayout.addStretch()
widget.setLayout(widgetLayout)
#Add widget to QListWidget funList
funList.addItem(itemN)
funList.setItemWidget(itemN, widget)
Das Problem ist, nichts zeigt sich. Ich erhalte eine Leerzeile, über die ich mit meiner Tastatur navigieren kann, aber sie ist leer. Wenn das Widget nur eine Drucktaste enthält, funktioniert es, so dass es nicht so ist, als ob die Drucktaste alleine Dinge durcheinander bringt. Gibt es Grenzen für die Komplexität von Widgets, die setItemWidget
verarbeiten kann? Vielleicht muss ich über die Convenience-Klassen hinausgehen, wie es in einigen der verwandten Beiträge unten vorgeschlagen wird?
Related posts
pyqt adding a widget to a QListWidget
Hinweis die frühere Post einen ähnlichen Titel zu mir hat, scheint aber eine relativ schlecht ausgedrückt Frage zu einem komplexen Pastiche von Code aus QtDesigner (mit einigen benutzerdefinierten Sachen gemischt) zu sein . Es ist überhaupt nicht klar, dass dies eigentlich die Frage ist, die die Person hätte stellen sollen. Während der Titel es wie ein Duplikat erscheinen lässt, ist die Frage (ich bete) nicht.
Ich würde etwas ähnliches über this Post sagen.
QListWidgetItem with Radio Button
QListView/QListWidget with custom items and custom item widgets
Adding Custom Widget to QListWidget in QT click issue in QT?
pyqt adding a widget to a QListWidget
http://www.qtcentre.org/threads/8660-Drawing-a-widget-in-QItemDelegate-s-paint-method
das funktioniert! Mir ist nicht klar, was passiert. 1) Sobald die Größenbeschränkung eingestellt ist, muss ich wirklich "setSizeHint" auf das Element auch? Es _seems_ das Auslassen von 'setSizeHint' ändert nicht das Aussehen meiner GUI. 2) Warum war mein Größenhinweis standardmäßig auf -1, -1 eingestellt, und wie wird dies durch 'SetFixedSize' behoben? Warum behebt es nicht einfach den falschen Wert (-1, -1). Irgendwelche guten Dokumente gehen über die Ins-und-Outs dieser Probleme? (Dokumente enthalten: http://qt-project.org/doc/qt-4.8/qt.html#SizeHint-enum und http://qt-project.org/doc/qt-4.8/qlayout.html#SizeConstraint- enum) – neuronet
@neuronet 'QLayout :: SetFixedSize' Die Größe des Haupt-Widgets ist auf' sizeHint(); 'eingestellt, es kann nicht skaliert werden. Wenn Sie keinen Größenhinweis setzen, wird Ihr Widget mit Label und Button größer als das Item, also wird es extrem hässlich und unkorrekt sein. – Chernobyl
Akzeptieren der Antwort, weil es das Problem gelöst hat, aber wird definitiv jeden aufmuntern, der die Ins-und-Outs dieser Sache erklärt, um die nächste Person über die Cargo-Kult-Programmierung hinauszubringen :) – neuronet