{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和Python3.4
发布于 2015-02-01 05:16:55
您可以在Qt文档中阅读有关QPalette的内容:
警告:有些样式并不是所有绘图都使用调色板,例如,如果它们使用本机主题引擎。对于Windows、Windows和Mac样式都是如此。
Windows 7样式也不使用按钮的调色板颜色。你应该使用样式表给你的按钮颜色。如果使用Windows 7样式以外的其他主题,则可以使用QPalette.Button角色更改按钮颜色。
https://stackoverflow.com/questions/28257482
复制相似问题