本文介绍了PyQt4 QPalette 不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

    {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() 给我错误

Using btn.backgroundRole() only provides green border to the button.
Using btn.foregroundRole() changes the text color of the button
Using btn.windowRole() gives me error

类型错误:参数不匹配任何重载调用:
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 什么都不做

Tried QtGui.QPalette.Background in place of btn.windowRole() but does nothing
Also tried QtGui.QPalette.Base but does nothing
And also QtGui.QPalette.Window does nothing

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

How can I change button color using palettes?
I am unable to rectify the problem. I am using windows 7, PyQt4 and Python 3.4

推荐答案

您可以在 Qt 文档中阅读有关 QPalette 的内容:

You can read in Qt documentation about QPalette :

警告:某些样式不使用所有绘图的调色板,因为例如,如果他们使用原生主题引擎.这是这种情况适用于 Windows XP、Windows Vista 和 Mac OS X 样式.

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

Windows 7 style also does not use palette colors for buttons. You should use stylesheets to give a color to your button. If you use some other theme than Windows 7 style, you can use QPalette.Button role to change the button color.

这篇关于PyQt4 QPalette 不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-27 08:45