样式按钮背景保持圆角

Style button background keeping rounded corners

我想制作一个绿色按钮。我这样做了:

self.detectButton.setStyleSheet("background: #00ff00")

这是造型之前的样子:

之后:

如你所见,颜色变了,但是圆角不见了。

为不丢失边角设置颜色样式的正确方法是什么?

其次,有没有办法获得主题通用 "ok" 按钮颜色?这在其他平台上看起来不一样。

我不熟悉 Python,但我假设它在您手动设置该样式时删除了所有其他样式。

我想知道像下面这样的方法是否可行?

self.detectButton.setStyleSheet("background: #00ff00; border:1px solid #ccc; border-radius: 3px;")

虽然它可能对多种样式有不同的语法。

如果您希望在所有平台上获得完全一致的结果,请不要使用样式表。 .

中解释了其原因

如果您只需要设置背景颜色,请使用小部件的palette:

palette = self.detectButton.palette()
palette.setColor(QtGui.QPalette.Button, QtGui.QColor('#00ff00'))
self.detectButton.setPalette(palette)

似乎不​​太可能有一种系统的方法来生成在所有平台上都同样有效的颜色。也许您能做的最好的事情就是尝试调整一种可通过 palette color roles.

访问的系统颜色

编辑:

我认为调色板方法是可靠的跨平台解决方案似乎是错误的。 QPalette 的 Qt 文档具有以下内容:

Warning: Some styles do not use the palette for all drawing, for instance, if they make use of native theme engines. This is the case for both the Windows XP, Windows Vista, and the OS X styles.

因此似乎甚至没有一种完全一致的跨平台方式来完成像更改背景颜色这样简单的操作。