【发布时间】:2015-01-31 22:55:57
【问题描述】:
{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
【问题讨论】:
-
不了解 PyQt4,但这些是 C++ 中的
enums。也许 PyQt 有问题?你能尝试更新 PyQt 吗? (除此之外我没有太多帮助,因为我不是 Python 程序员......)