保持圆角的样式按钮背景

时间:2016-10-27 21:17:54

标签: qt pyqt qt5 pyqt5 qtstylesheets

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

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

这是在造型之前:

enter image description here

之后:

enter image description here

如您所见,颜色发生了变化,但圆角已经丢失。

对颜色进行样式设置的正确方法是什么,以免角落丢失?

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

2 个答案:

答案 0 :(得分:1)

如果您希望在所有平台上获得完全一致的结果,请不要使用样式表。 this answer中解释了原因。

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

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

似乎不太可能有一种系统的方法来生成在所有平台上同样良好运行的颜色。您可以做的最好的事情就是尝试调整可通过palette color roles访问的系统颜色之一。

修改

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

  

警告:某些样式不会将调色板用于所有绘图   例如,如果他们使用本机主题引擎。情况就是这样   适用于Windows XP,Windows Vista和OS X样式。

所以似乎甚至没有一种完全一致的,跨平台的方式来做一些简单的事情来改变背景颜色。

答案 1 :(得分:0)

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

我想知道以下内容是否有效?

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

但是,对于多种样式,它可能有不同的语法。