从十六进制值设置标签字体颜色

时间:2016-02-24 00:06:09

标签: python pyqt

我正在尝试将QLabel上的字体颜色设置为从服务器接收的十六进制值。

目前我只是设置标签的文字,但不知道如何设置字体颜色。

branch B1

其中folder F是一个十六进制字符串,如def set_stat_lbl(self): palette = QPalette() palette.setColor(QPalette.Foreground, self.stat_value_color) self.stat_lbl.setText(_translate("rep_stat", self.stat_name, None)) self.stat_lbl.setPalette(palette) 。上面的代码显然不起作用,因为它想要的颜色不是字符串。

2 个答案:

答案 0 :(得分:2)

您还可以使用十六进制字符串实例化QColor

palette = self.stat_lbl.palette()
color = QColor('#112233')
palette.setColor(QPalette.Foreground, color)
self.stat_lbl.setPalette(palette)

此外,您可以直接在窗口小部件上使用css,而不是每次设置文本时都必须构建它:

self.stat_lbl.setStyleSheet('QLabel {color: #112233;}')
self.stat_lbl.setText('This is colored text')

答案 1 :(得分:0)

使用CSS计算出来。

def set_stat_lbl(self):
    value = "<font color='{}'>{}</font>".format(self.stat_value_color, self.stat_name)
    self.stat_lbl.setText(_translate("rep_stat", value, None))
相关问题