Изменение значное цвет QLCD количество

Я хочу изменить цвет фона и цифры QLCDNumber в Qt Designer, и я собираюсь использовать этот дизайн (GUI) в своей программе Python.

некоторые люди сказали, что могут получить мою таблицу стилей добавления в Qt-Designer.

QLCDNumber{color:rgb(85, 85, 255);background-color:rgb(0, 170, 255);}

это успешно для цвета фона не для цвета цифр.

как я пытаюсь получить цвет цифры

спасибо


Я не могу использовать последние два setColor (для светлой границы и темной границы). Я генерировал код python (для GUI) из конструктора Qt4 с помощью инструмента pyuic4. Я добавил коды в свой файл кода python (заканчивая .пай нет .ИП) следующим образом

self.palette = self.withpalette.palette()
self.palette.setColor(QtGui.Palette.WindowText,QtGui.QColor(85,85,255))
self.palette.setColor(QtGui.Palette.Background,QtGui.QColor(0,170,255))
self.palette.setColor(QtGui.Palette.Light,QtGui.QColor(255,0,0))
self.palette.setColor(QtGui.Palette.Dark,QtGui.QColor(0,255,0))
self.withpalette.setPalette(self.palette)

1 ответов


на самом деле, это работает. QLCDNumber, по умолчанию рисует цифры в стиле "raised". Для небольших размеров эти границы, которые дают повышенный эффект, в основном охватывают цифру, и вы не увидите нормальный цвет. Если вы сделаете его больше, он покажет:

QLCDNumber

если вы не хотите этого" поднятого " эффекта, вы можете отключить его с помощью setSegmentStyle:

lcd.setSegmentStyle(QtGui.QLCDNumber.Flat)

Flat QLCDNumber

С другой стороны, если вы хотите" поднятый " эффект, но хотите контролируйте его, вам нужно сделать это через QPalette. QPalette.Light и QPalette.Dark - это два цвета, которые контролируют эти границы.

# get the palette
palette = lcd.palette()

# foreground color
palette.setColor(palette.WindowText, QtGui.QColor(85, 85, 255))
# background color
palette.setColor(palette.Background, QtGui.QColor(0, 170, 255))
# "light" border
palette.setColor(palette.Light, QtGui.QColor(255, 0, 0))
# "dark" border
palette.setColor(palette.Dark, QtGui.QColor(0, 255, 0))

# set the palette
lcd.setPalette(palette)

QLCDNumber custom QPalette