Я добавляю этот ответ, потому что думаю, что он может быть полезен любому.
Я вступаю в проблему с установкой RGBA цветов (то есть цвета RGB со значением альфа-канала для прозрачности) для цветных меток отображения в моем приложении рисования.
Когда я наткнулся на первый ответ, я не смог установить цвет RGBA. Я также пробовал такие вещи, как:
myLabel.setStyleSheet("QLabel { background-color : %s"%color.name())
, где color
- это цвет RGBA.
Итак, мое грязное решение состояло в том, чтобы расширить QLabel
и переопределить paintEvent()
метод, заполняющий его ограничивающий прямоугольник.
Сегодня я открыл qt-assistant
и прочитал список справочных свойств стиля . К счастью, у него есть пример, в котором говорится следующее:
QLineEdit { background-color: rgb(255, 0, 0) }
Это позволяет мне сделать что-то вроде приведенного ниже кода, например:
myLabel= QLabel()
myLabel.setAutoFillBackground(True) # This is important!!
color = QtGui.QColor(233, 10, 150)
alpha = 140
values = "{r}, {g}, {b}, {a}".format(r = color.red(),
g = color.green(),
b = color.blue(),
a = alpha
)
myLabel.setStyleSheet("QLabel { background-color: rgba("+values+"); }")
Обратите внимание, что setAutoFillBackground()
, установленное в False
, не будет работать.
С уважением,