繁体   English   中英

PyQt组合框选择性文本格式

[英]PyQt combobox selective text formatting

圣诞快乐!

我是PyQt4编程的新手,并使用Qt Designer进行大多数UI开发。 但是我对通过Python代码填充QComboBox有特定的要求。 更多,因此我想更改某些条目的文本格式(粗体,红色背景色)。

本质上,组合框条目应如下所示:


约翰
汤姆
亨利
蜜雪儿
阿什什
黄-
....

在代码方面,我想做这样的事情:

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)

以下代码失败:

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:
    item = PyQt4.QtGui.QStandardItem(str(account))
    if name in colorNameList:
       item.setBackground(PyQt4.QtGui.QColor('red'))
    callBackObj.NameComboBox.addItem(item)

错误消息:

TypeError:参数与任何重载调用都不匹配:
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)


非常感谢
拉胡尔

以下代码有效:):

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)

干杯
拉胡尔

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM