क्या पहले कॉम्बोबॉक्स आइटम बनाना संभव है, फिर इसके डिस्प्ले गुण (जैसे आइटम का पृष्ठभूमि रंग, आइकन, फ़ॉन्ट रंग, फ़ॉन्ट आकार आदि) सेट करें और केवल इसे कॉम्बोबॉक्स में जोड़ने के लिए Comobobox के .addItem() विधि का उपयोग कर यह अब मैं का उपयोग कर अटक कर रहा हूँ के रूप में:?।पीईक्यूटी: कॉम्बोबॉक्स आइटम को कस्टमाइज़ करने के लिए कैसे करें
myCombobox = QtGui.QComboBox
for i in range(10):
myCombobox.addItem(str(i))
इस दृष्टिकोण अलग-अलग ComboBox के आइटम गुण प्रदर्शित की अनुकूलन के लिए कम जगह छोड़ देता है कहने की जरूरत नहीं कुछ इस तरह मैं क्या चाहते हैं :
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))
बाद में संपादित
यहां QCombobox के अनुकूलित आइटम का एक कामकाजी उदाहरण है। धन्यवाद 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()
समय पर सही! आपका बहुत बहुत धन्यवाद! – alphanumeric
हम किसी आइटम के अग्रभूमि रंग को डिफ़ॉल्ट "रंग नहीं" पर कैसे रीसेट कर सकते हैं? ... आइटम पहले ही आइटम सेट कर चुका था .setForeground (QtGui.QColor ('red')) इसके डिस्प्ले को रंग से डिफॉल्ट पर स्विच करने की आवश्यकता है और vise versa ... – alphanumeric
@Sputnix। मेरा अद्यतन उत्तर देखें। इसके अलावा: मुझे अभी एहसास हुआ कि 'QComboBox' पहले से ही' QStandardItemModel' का उपयोग करता है, इसलिए मैंने तदनुसार अपना उदाहरण सरल बना दिया है। – ekhumoro