我有一个非常简单的问题,我正试图解决为什么它不起作用。
基本上我试图打印出比较函数的结果以及不同颜色的结果。\
下面是我的代码示例:
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}}如“嘿,看你的其他文件中的狗是不正确的,请修理它”
目前我的代码按照它的设想执行,并将不正确的值打印到我的结果中,但是我只想格式化它以使所有内容都具有不正确的值和正确的值。我怎样才能正确涂抹我的结果?
答案 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 !")