首页 > 解决方案 > 如何使用python更改文本框中的特定字母颜色

问题描述

我需要使用 python 突出显示文本框中的特定字母。我正在使用下面的代码,但它会更改文本框中的整个文本颜色。请提出任何其他想法。

 if self.dlgAttribute.ui.txtPartDesc3.text()!="":
        partDescValue = self.dlgAttribute.ui.txtPartDesc3.text()
        if not partDescValue in self.englishArray:
            font.setPointSize(11)
            self.dlgAttribute.ui.txtPartDesc3.setFont(font)
            self.dlgAttribute.ui.txtPartDesc3.setStyleSheet(_fromUtf8("color: rgb(255, 162, 0);\n"
            "background-color: rgb(41, 91, 170);\n"
            "font: 750 10pt \"Arial\";"))
        else:
            font.setPointSize(11)
            self.dlgAttribute.ui.txtPartDesc3.setFont(font)
            self.dlgAttribute.ui.txtPartDesc3.setStyleSheet(_fromUtf8("color: rgb(0,0,0);\n"
            "background-color: rgb(255, 255, 255);\n"
            "font: 750 10pt \"Arial\";"))
    else:
        font.setPointSize(11)
        self.dlgAttribute.ui.txtPartDesc3.setFont(font)
        self.dlgAttribute.ui.txtPartDesc3.setStyleSheet(_fromUtf8("color: rgb(0,0,0);\n"
        "background-color: rgb(255, 255, 255);\n"
        "font: 750 10pt \"Arial\";"))

标签: pythonpython-2.7pyqtpyqt4qt-designer

解决方案


一种方法是,使用只读的富文本框,然后复制输入框的纯文本内容并将您想要突出显示的文本替换为 QTextFormat 等。

https://doc.qt.io/qt-5/richtext.html

或者,更简单的方法是将文本转换为 HTML,然后通过QWebView.

从 QT 中的字符串显示(渲染)HTML


推荐阅读