{btn = QtGui.QPushButton('Button', self)
palettes = btn.palette()
palettes.setColor(btn.backgroundRole(),QtCore.Qt.green)
btn.setPalette(palettes)
btn.setAutoFillBackground(True)}
使用btn.backgroundRole()
仅为按钮提供绿色边框
使用btn.foregroundRole()
更改按钮的文本颜色
使用btn.windowRole()
会给我发错误
TypeError:参数与任何重载调用都不匹配:
QPalette.setColor(QPalette.ColorGroup,QPalette.ColorRole,QColor): 参数1具有意外类型'str'
QPalette.setColor(QPalette.ColorRole,QColor):参数1有 意外类型'str'
尝试QtGui.QPalette.Background
代替btn.windowRole()
,但没有做任何事
还试过QtGui.QPalette.Base
但没有做任何事
并且QtGui.QPalette.Window
也没有做任何事
如何使用调色板更改按钮颜色?
我无法纠正这个问题。我使用的是Windows 7,PyQt4和Python 3.4
答案 0 :(得分:2)
您可以在Qt文档中阅读QPalette
:
警告:某些样式不会将调色板用于所有绘图 例如,如果他们使用本机主题引擎。情况就是这样 适用于Windows XP,Windows Vista和Mac OS X样式。
Windows 7样式也不使用按钮的调色板颜色。您应该使用样式表为按钮指定颜色。如果您使用除Windows 7样式之外的其他主题,则可以使用QPalette.Button
角色更改按钮颜色。