8

我想更改QLCDNumberQt Designer 中的背景和数字颜色,我将在我的 Python 程序中使用该设计(GUI)。

有人说,那可以让我在 Qt-Designer 中添加样式表。

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

对于背景颜色而不是数字颜色是成功的。

我如何尝试获得数字颜色

谢谢


我不能使用最后两个 setColor(用于浅色边框和深色边框)。我正在使用 pyuic4 工具从 Qt4 Designer 生成 python 代码(用于 GUI)。我将代码添加到我的python代码文件中(以.py而不是.ui结尾)如下

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)
4

2 回答 2

12

实际上,它有效。QLCDNumber,默认情况下,以“凸起”样式绘制数字。对于小尺寸,这些产生凸起效果的边框将主要覆盖数字,您将看不到正常颜色。如果你把它变大,它会显示:

QLCD数字

如果您不想要这种“提升”效果,可以使用以下命令将其关闭setSegmentStyle

lcd.setSegmentStyle(QtGui.QLCDNumber.Flat)

平面QLCD数

另一方面,如果你想要“提升”效果但又想控制它,你需要通过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 自定义 QPalette

于 2013-01-23T22:59:56.390 回答
0

QtLCDNumber 的样式表

QLCDNumber{
  background-color: rgb(0, 0, 0);
  border: 2px solid rgb(113, 113, 113);
  border-width: 2px;
  border-radius: 10px;
  color: rgb(255, 255, 255);
}
于 2020-06-09T16:32:32.270 回答