Comment définir QWidget couleur d'arrière-plan?
La ligne w.setBackgroundRole(QPalette.Base)
dans le code ci-dessous n'a pas d'effet. Pourquoi? Comment puis-je régler ce problème?
import sys
from PySide.QtCore import *
from PySide.QtGui import *
app = QApplication(sys.argv)
w = QWidget()
w.setBackgroundRole(QPalette.Base)
w.show()
app.exec_()
OriginalL'auteur Johan Råde | 2012-09-29
Vous devez vous connecter pour publier un commentaire.
Vous devez appeler
setAutoFillBackground(True)
sur le widget. Par défaut, unQWidget
de ne pas remplir ses arrière-plan.Pour plus d'informations, consultez la documentation du
setAutoFillBackground
propriété.Si vous souhaitez utiliser un arbitraire de la couleur d'arrière-plan, vous devez modifier le widget de la palette à la place:
Pas de problème. Je dois ajouter que la documentation de Qt est un peu flou: le
QPalette::Window
rôle est utilisé pour remplir un widget de l'arrière-plan si c'est une fenêtre de niveau supérieur. Sinon, votre widget debackgroundRole
est utilisé au lieu de cela, de sorte que votre code doit fonctionner comme prévu.OriginalL'auteur jmk