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() дает мне ошибку 
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 
1 ответ:
Вы можете прочитать в документации Qt о
QPalette:Предупреждение: некоторые стили не используют палитру для всего рисунка, например: например, если они используют собственные тематические движки. Вот в чем дело для обоих стилей Windows XP, Windows Vista и Mac OS X.
Стиль Windows 7 также не использует цвета палитры для кнопок. Вы должны использовать таблицы стилей, чтобы придать цвет вашей кнопке. Если вы используете какую-то другую тему, кроме стиля Windows 7, Вы можете использовать роль
QPalette.Buttonдля изменения цвет кнопки.