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)
这可能吗?如果是这样,我该怎么做?
问候,
须藤!
在对人们使用过的其他方法进行了一些研究后,我想通了并想分享。我用 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)
您应该为此提供一个丰富的文本。可以通过创建<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)