所以,我有QtGui.QTextEdit
我希望根据某些条件添加文本。例如:
resultbox = QtGui.QTextEdit()
text = 'example'
if condition1:
resultbox.append(text) '''Append text to resultbox in default color.'''
elif condition2:
resultbox.append(text) '''Append the text in say, red and not the default black. How?'''
我在setForegroundColor(QtColor)
上寻找类似QString(text)
方法的内容,这样我就可以设置文本的前景色。
我试图通过设置QTextEdit
的颜色来使用PyQt4中的stylehseets,但这不允许我选择性地为文本着色,对吗?
我有办法实现这个目标吗?
由于
答案 0 :(得分:2)
QTextEdit
可以处理常规的html内容,因此您可以使用以下内容来实现您的愿望:
resultbox = QtGui.QTextEdit()
text = 'example'
if condition1:
resultbox.insertText(text) '''Append text to resultbox in default color.'''
elif condition2:
resultbox.insertHtml(QString("<font color=\"red\">%1</font>").arg(text)) '''Append the text in say, red and not the default black. How?'''
答案 1 :(得分:1)
使用QTextEdit.textCursor
获取光标,然后使用QTextCursor.setCharFormat
设置格式。
resultbox = QtGui.QTextEdit()
text = 'example'
if condition1:
resultbox.append(text) '''Append text to resultbox in default color.'''
elif condition2:
resultbox.textCursor().setCharFormat(specialFormat)
resultbox.append(text) '''Append the text in say, red and not the default black. How?'''
resultbox.textCursor().setCharFormat(defaultFormat)
或者您可以使用QTextEdit.insertHtml
将一些HTML代码插入到文本中,您可以按style
属性指定颜色。