2016-02-24 3 views
2

Я пытаюсь установить цвет шрифта на QLabel на шестнадцатеричное значение, полученное с сервера.Установить цвет шрифта ярлыка с шестнадцатеричного значения

В настоящее время я просто устанавливаю текст метки, но понятия не имею, как установить цвет шрифта.

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) 

Где self.stat_value_color будет шестнадцатеричная строка, как #fb0000. Вышеприведенный код явно не работает, поскольку он хочет, чтобы цвет не был строкой.

ответ

1

Вы также можете создать экземпляр 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') 
+0

Я думаю, что мне нравится ваш второй вариант самое лучшее и, вероятно, пойдите с этим. – electrometro

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)) 
Смежные вопросы