2017-04-11 4 views
0

J'ai beaucoup de recherche sur la façon dont vous pouvez peindre la couleur d'arrière-plan d'un bouton ou GenButton avec un motif tel que des lignes ou des hachures croisées. J'ai vu des exemples de wx DirectContext pour que vous puissiez dessiner des objets avec des motifs au lieu de simplement des couleurs solides, mais il semble que ce soit uniquement pour des formes spécifiques et non la couleur des objets de bouton. Est-ce que la bibliothèque dc ou gc permet de peindre sur ces objets. Je sais que je dois créer un gestionnaire d'événement pour OnPaint et OnResize mais il se peut que certaines étapes me manquent pour qu'il s'applique au bouton lui-même.WxPython: Réglage de l'arrière-plan des boutons avec wx.Brush

+0

J'essaie de réduire ma palette de couleurs de façon à ce que ce soit sans danger pour les couleurs et l'utilisation de motifs est un bon moyen de réduire les couleurs que je dois utiliser – NPaz

Répondre

0

wx.Button objet représente un contrôle natif. Et, malheureusement, vous ne pouvez pas manipuler comment le contrôle natif se peint.

Vous pouvez essayer SetBackgroundColour()/SetForegroundColour() mais c'est aussi loin que vous pouvez aller.

1

Le package wxPython utilise autant que possible des widgets natifs dans ses composants principaux. Ainsi, le widget wx.Button va être un widget natif que vous ne pouvez modifier que via les méthodes mentionnées dans la documentation. Comme Igor mentionné, vous pouvez essayer d'utiliser SetBackgroundColour() ou SetForegroundColour(), mais en fonction du widget bouton de votre plate-forme, ils peuvent ou peuvent ne pas fonctionner.

Ce que vous voulez vraiment, c'est un widget personnalisé. Je recommande de vérifier le GenericButtons, PlateButton et GradientButton pour des exemples. Vous pourriez même être en mesure d'utiliser un GenericButton directement et peindre son arrière-plan comme vous l'avez mentionné.