在PyQt4

时间:2015-10-16 14:19:13

标签: python colors pyqt4

我有一个非常简单的问题,我正试图解决为什么它不起作用。

基本上我试图打印出比较函数的结果以及不同颜色的结果。\

下面是我的代码示例:

with open(compareResults, 'wb') as fdout:
    for index, tabName in enumerate(setNames):
        tabWidget = QtGui.QWidget()
        tabLabel = QtGui.QTextEdit()
        print "Tab Name is :{}".format(tabName)
        fdout.write('{}'.format(tabName) + '\r\n')
        nameData = lst[index]
        print 'name data = {}'.format(nameData)
        for k in nameData:

            # if nameData[k] == 'ESS':
            #     print 'ESS found'
            # elif nameData[k] != 'ESS':
            if nameData[k] != correct_parameters[k]:
                tabLabel.append('{} = {}'.format(k, nameData[k]))
                tabLabel.setStyleSheet('color: black')
                fdout.write('\t' + '|' + '{} = {}'.format(k, nameData[k]) + '\t' + '|' + '\r\n')
                print ('{} = {}'.format(k, nameData[k]))
            elif nameData[k] == correct_parameters[k]:
                tabLabel.append('{} = {}'.format(k, nameData[k]))
                tabLabel.setStyleSheet('color: red')
                fdout.write('\t' + '|' + '{} = {}'.format(k, nameData[k]) + '\t' + '|' + '\r\n')
                print ('{} = {}'.format(k, nameData[k]))
        tabLayout = QtGui.QVBoxLayout()
        tabLayout.addWidget(tabLabel)
        tabWidget.setLayout(tabLayout)
        self.tabWidget.addTab(tabWidget, tabName)

我希望与==匹配的文本结果为红色,而结果与黑色!=不匹配但是我认为循环结束时使用第二个{{ 1}}所以我的结果只显示为红色,并且不显示elif结果。

我的代码所做的是比较两个文本文档,这些文档在其中包含一系列数据和参数。一旦程序比较了两个文件,它将输出任何不同的结果,例如,如果在主文件(正确文件)!=和另一个文件(不正确的文件)dog = 6中它将打印出来{ {1}}如“嘿,看你的其他文件中的狗是不正确的,请修理它”

目前我的代码按照它的设想执行,并将不正确的值打印到我的结果中,但是我只想格式化它以使所有内容都具有不正确的值和正确的值。我怎样才能正确涂抹我的结果?

下面是我想要实现的内容的直观表示:正如您所看到的,鼠标是黑色的,因为它是不正确的,结果为红色,因为它是正确的。 output1

1 个答案:

答案 0 :(得分:3)

使用tabLabel.setStyleSheet('color: red'),您正在更改整个QTextEdit的css:您定义所有文本,甚至以前写过的文本都是红色的。

要更改文字的颜色,您只需在写作前致电setTextColor(QtGui.QColor)

例如:

self.text=QtGui.QTextEdit()
self.text.setTextColor(QtGui.QColor("blue"))
self.text.append("I'm blue !")
self.text.setTextColor(QtGui.QColor("red"))
self.text.append("I'm red !")