5
콤보 상자 항목을 먼저 만든 다음 항목의 배경색, 아이콘, 글꼴 색, 글꼴 크기 등과 같은 표시 속성을 설정하고 ComboBox에 추가 할 수 있습니까? .PyQt : 콤보 상자 항목을 사용자 지정하는 방법
가myCombobox = QtGui.QComboBox
for i in range(10):
myCombobox.addItem(str(i))
이 방법은 개별 콤보 상자의 항목 속성을 표시의 정의에 대한 작은 공간 나뭇잎 말할 필요도없이 내가하고 싶은 것은이 같은 것입니다 : 그것은 지금 내가 사용 붙어 따라 Comobobox의 .addItem() 메소드를 사용하여 :
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의 사용자 정의 된 항목의 작동 예제입니다. 감사합니다 에쿠 모로!
기본적으로
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
항목의 전경색을 기본값 "no color"로 재설정하는 방법은 무엇입니까? ... 항목이 이미 item.setForeground (QtGui.QColor ('red'))로 설정된 후에는 색상을 기본 색상으로 바꿀 필요가 있으며 그 반대도 마찬가지입니다. – alphanumeric
@Sputnix. 내 업데이트 답변을 참조하십시오. 또한 : 나는'QComboBox'가 이미'QStandardItemModel'을 사용하고 있다는 것을 깨달았습니다. 그래서 나는 그에 맞게 예제를 단순화했습니다. – ekhumoro