Changer la couleur de fond d'un Bouton dans Kivy
Je suis nouveau sur Kivy et de la difficulté à spécifier la couleur de fond d'un Bouton. Voici mon exemple simple:
# custombutton.py
from kivy.app import App
from kivy.uix.widget import Widget
class MyWidget(Widget):
pass
class CustomButtonApp(App):
def build(self):
return MyWidget()
if __name__ == '__main__':
CustomButtonApp().run()
Et l'accompagnement kv fichier custombutton.kv
:
#:kivy 1.7.2
<MyWidget>:
canvas:
Color:
rgb: (0.93, 0.93, 0.93)
Rectangle:
pos: self.pos
size: self.size
Button:
center: self.parent.center
font_size: 14
height: 28
background_color: (1.0, 0.0, 0.0, 1.0)
text: "I'm a Button"
Je suis sûr que je suis absent quelque chose d'évident, mais je me suis amusé avec pendant plus d'une heure maintenant et nulle part. Le bouton de semble pour obtenir la couleur d'un indicateur de couleur rouge très foncé:
Est-ce pas le moyen de spécifier la couleur de fond d'un Bouton dans Kivy?
Merci!
OriginalL'auteur Fiver | 2013-11-24
Vous devez vous connecter pour publier un commentaire.
Ah, c'est une commune de la confusion. Le problème est que
Button.background_color
fonctionne vraiment comme une sorte de teinte, pas juste un bloc de couleur. Depuis l'arrière-plan par défaut est d'un gris de l'image (celle que vous voyez normalement, si vous faites un non stylé bouton), ce que vous avez vu est un rouge teinte de gris de l'image qui sort comme le rouge foncé vous observer.Vous pouvez obtenir le comportement que vous voulez par le remplacement de l'image d'arrière-plan à un seul qui est blanche, il n'a pas à être plus que quelques pixels), ou en jouant avec les
background_normal
etbackground_down
propriétés. Lorsque votre background_color teintes de la nouvelle blanc pur de l'image, vous obtenez le rouge pur, vous êtes après.Je suppose que ce n'est pas aussi clair dans les docs, je vais essayer de l'améliorer.
Je ne suis pas tout à fait sûr de savoir comment la frontière substance fonctionne dans la pratique. Je n'ai jamais tiré mon propre simple frontières avec le sommet des instructions (Ligne etc.) directement sur mon widget canvas.
Vous pouvez ajouter des bordures à la
background_normal
etbackground_down
images: stackoverflow.com/questions/19005182/.... Les images sont découpé dans une grille de 9 similaire au css border-image. Vous devez assurez-vous que les coins de match.OriginalL'auteur inclement
Il a été un moment depuis que cela a d'abord été posté alors peut-être avec des mises à jour, ils sont venus avec une meilleure solution:
Depuis le Bouton par défaut est gris, en ajoutant de la couleur d'arrière-plan ne teinte le bouton. Par la mise en background_normal " qui rétablit la valeur par défaut est blanc. À partir de la toile blanche, le background_color fonctionne comme vous le souhaitez.
Documentation
1) https://kivy.org/docs/api-kivy.uix.button.html?highlight=button#module-kivy.uix.button
OriginalL'auteur Taylor D