在QTextEdit中更改单个字符串的颜色

sud*_*ang 5 python qt qt4 pyqt text-coloring

我正在研究通过PyQt和Qt4开发的GUI。在我的GUI中,我有一个QTextEdit,其中写入了各种数据。有没有一种方法可以操纵QTextEdit中一个单词的颜色?

例如

redText = "I want this text red"
self.myTextEdit.write(redText)
blackText = "And this text black"
self.myTextEdit.append(blackText)
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,我该怎么做?

问候,

须藤!

jum*_*533 7

在对人们使用过的其他方法进行了一些研究后,我想通了并想分享。我用 QTextEdit 尝试了“.setHtml”函数,但没有用。

我发现您可以更改文本颜色,添加文本,然后再次更改它,更改颜色后添加的任何文本都会变为该颜色,但没有其他内容。

这是一个例子。

redColor = QColor(255, 0, 0)
blackColor = QColor(0, 0, 0)

self.myTextEdit.setTextColor(redColor)

redText = "I want this text red"
self.myTextEdit.write(redText)


self.myTextEdit.setTextColor(blackColor)

blackText = "And this text black"
self.myTextEdit.append(blackText)
Run Code Online (Sandbox Code Playgroud)

而且,我想补充一下。“.write”和“.append”函数不适用于我的“QTextEdit”类。不确定您是否这样做,但对我有用的是“.insertPlainText”功能。只需将您的字符串转换为“QString”,就像这样

blackText = QString(blackText)
Run Code Online (Sandbox Code Playgroud)


Nej*_*jat 6

您应该为此提供一个丰富的文本。可以通过创建<span>标签并将color属性设置为RGB值来完成:

redText = "<span style=\" font-size:8pt; font-weight:600; color:#ff0000;\" >"
redText.append("I want this text red")
redText.append("</span>")
self.myTextEdit.write(redText)

blackText = "<span style=\" font-size:8pt; font-weight:600; color:#000000;\" >"
blackText.append("And this text black")
blackText.append("</span>")
self.myTextEdit.append(blackText)
Run Code Online (Sandbox Code Playgroud)