圣诞快乐伙计们!在
我不熟悉PyQt4编程,并且在大多数UI开发中使用Qt设计器。不过,我有一个特定的需求,需要通过Python代码填充QComboBox。另外,我想更改一些条目的文本格式(粗体,红色背景色)。在
基本上,组合框条目应如下所示:
约翰
汤姆
亨利
米歇尔
阿什什
Jo Huang
。。。。在
在代码方面,我想做的是:nameList = ('John','Tom','Henry','Michelle','Ashish','Jo-Huang', ...)
colorNameList = ('Michelle','Jennifer','Claudia','JimSung', ...)
callBackObj.NameComboBox.clear()
callBackObj.NameComboBox.addItem(QString('Account Names'))
for name in nameList:
if name in colorNameList:
callBackObj.NameComboBox.addItem(name) #Make this entry bold and red background
else:
callBackObj.NameComboBox.addItem(name)
以下代码失败:
^{pr2}$
错误消息:
类型错误:参数与任何重载调用不匹配:
QComboBox.addItem(QString,QVariant userData=QVariant()):参数1具有意外的类型“QStandardItem”
QComboBox.addItem(QIcon,QString,QVariant userData=QVariant()):参数1具有意外的类型“QStandardItem”
以下代码有效:):nameList = ('John','Tom','Henry','Michelle','Ashish','Jo-Huang', ...)
colorNameList = ('Michelle','Jennifer','Claudia','JimSung', ...)
callBackObj.NameComboBox.clear()
callBackObj.NameComboBox.addItem(QString('Account Names'))
model = callBackObj.NameComboBox.model()
for name in nameList:
item = PyQt4.QtGui.QStandardItem(str(account))
if name in colorNameList:
item.setBackground(PyQt4.QtGui.QColor('red'))
model.appedRow(item)
非常感谢
拉胡尔