Ist es möglich, zuerst ein ComboBox-Element zu erstellen, dann seine Anzeigeeigenschaften (z. B. Hintergrundfarbe, Symbol, Schriftfarbe, Schriftgröße usw.) festzulegen und erst dann ComboBox hinzuzufügen mit Comobobox der .addItem() Methode So wie es jetzt ist, ich bin mit fest:?.PyQt: Wie man ComboBox Items anpassen
myCombobox = QtGui.QComboBox
for i in range(10):
myCombobox.addItem(str(i))
Unnötig dieser Ansatz für die Anpassung der einzelnen ComboBox wenig Raum zu sagen, lässt Elemente Eigenschaften anzeigen Was würde ich mag so etwas wie dieses :
myCombobox = QtGui.QComboBox
for i in range(10):
item = comboboxItem()
item.setColor(allBlueAndShiny)
font = QtGui.QFont()
font.setPointSize(10)
item.setFont(font)
# Only after item was set with all display properties it is added:
myCombobox.addItem(str(i))
Später bearbeitet
Hier ist ein Arbeitsbeispiel von QCombobox's kundenspezifischen Artikeln. Danke Ekhumoro!
from PyQt4 import QtGui, QtCore
def main():
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
main_layout = QtGui.QVBoxLayout()
# QComboBox
combo = QtGui.QComboBox()
model = combo.model()
for row in range(10):
item = QtGui.QStandardItem(str(row))
item.setForeground(QtGui.QColor('red'))
font = item.font()
font.setPointSize(10)
item.setFont(font)
model.appendRow(item)
main_layout.addWidget(combo)
ok_button = QtGui.QPushButton("OK")
ok_button.clicked.connect(OK)
main_layout.addWidget(ok_button)
main_layout.addStretch(1)
window.setLayout(main_layout)
window.show()
sys.exit(app.exec_())
def OK(self):
print 'OK'
if __name__ == '__main__':
main()
Pünktlich! Vielen Dank! – alphanumeric
Wie setzen wir die Vordergrundfarbe eines Objekts auf die Standardfarbe "keine Farbe" zurück? ... nachdem das Element bereits item.setForeground (QtGui.QColor ('red')) gesetzt wurde, muss die Anzeige von Farbe auf Standard umgeschaltet werden und umgekehrt ... – alphanumeric
@Sputnix. Siehe meine aktualisierte Antwort. Außerdem: Ich habe gerade festgestellt, dass 'QComboBox' bereits ein' QStandardItemModel' verwendet, also habe ich mein Beispiel entsprechend vereinfacht. – ekhumoro