我想为 PyQt5 添加的每一行添加文本颜色

I want to add a color for the text for every new line added PyQt5

我正在尝试弄清楚如何在行编辑中使用 TextEdit 为文本着色,但对于任何新文本,我都会选择颜色。 假设这是一个错误,我希望它是红色的,或者为了警告我希望它是黄色的,并且在正常情况下保持黑色。 另外,如果有可能以红色突出显示文本,我们可以说。

self.main_window.textEdit.append(get_proj)

我正在使用上面的命令在 QlineEdit 中追加文本,有什么东西可以与 TextEdit 一起使用来为文本着色吗?

这个问题很含糊,因为您同时使用了术语 QLineEditQTextEdit,它们本质上是两种不同类型的小部件,我假设它的 QTextEdit 小部件,因为 QLineEdit 没有名为 append.

的关联方法

QTextEdit 支持富文本,因此您可以对 QTextEdit 中的文本使用 css 样式和 html 样式。您可以附加不同样式的不同富文本。为了方便,你可以只创建一些格式化文本,然后将相应的文本传递给python字符串的format方法,这样的格式化文本就可以创建这样的富文本,并附加到QTextEdit。为您的用例考虑以下示例:

import sys
from PyQt5.QtWidgets import QTextEdit, QApplication

if __name__=='__main__':
    app = QApplication([])
    textEdit = QTextEdit()
    # Create formatted strings
    errorFormat = '<span style="color:red;">{}</span>'
    warningFormat = '<span style="color:orange;">{}</span>'
    validFormat = '<span style="color:green;">{}</span>'
    # Append different texts
    textEdit.append(errorFormat.format('This is erroneous text'))
    textEdit.append(warningFormat.format('This is warning text'))
    textEdit.append(validFormat.format('This is a valid text'))

    textEdit.show()
    sys.exit(app.exec_())

此外,如果你想为每一行的文本进行颜色编码,QTextEdit 有一个 textChanged 信号,你可以将它连接到一个方法,从 QTextEdit 中读取新行并检查有效性的文本,并相应地设置颜色。