繁体   English   中英

PyQt4 QPalette无法正常工作

[英]PyQt4 QPalette not working

    {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:arguments与任何重载调用都不匹配:
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什么也QtGui.QPalette.Window

如何使用调色板更改按钮颜色?
我无法纠正这个问题。 我使用的是Windows 7,PyQt4和Python 3.4

您可以在Qt文档中阅读有关QPalette

警告:某些样式不会将调色板用于所有绘图,例如,如果它们使用本机主题引擎。 Windows XP,Windows Vista和Mac OS X样式都是如此。

Windows 7样式也不使用按钮的调色板颜色。 您应该使用样式表为按钮指定颜色。 如果使用除Windows 7样式之外的其他主题,则可以使用QPalette.Button角色更改按钮颜色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM