Comment faire pour désactiver un widget dans Kivy?
J'ai lu le Kivy tutoriel et ne pouvait pas trouver comment faire pour désactiver un widget (par exemple, un Bouton).
def foo(self, instance, *args):
#... main business logic, and then
instance.disable = False
# type(instance) = kivy.uix.Button
- Je lier foo
avec functools.partial
.
Qu'est-ce que le paramètre correct?
OriginalL'auteur Ulrich Von Rekkenin | 2013-11-07
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez kivy version >= 1.8, alors vous pouvez simplement faire un widget.disabled = True. Si sur les versions précédentes, vous pouvez simplement gérer la désactivation de vous-même, assurez-vous qu'il ne réagit pas au toucher et affiche un regard alternatif lorsqu'il est désactivé.
OriginalL'auteur qua-non
disabled
, pasdisable
Exemple:
def foo(self, instance, *args): print instance.disabled instance.disabled = True
et a obtenu imprimer instance.désactivé AttributeError: 'Bouton' objet n'a pas d'attribut "désactivé"disabled
propriété a été introduit dans la version 1.8.0. Si vous souhaitez l'utiliser, vous devez actualiser votre cadre.Mais comment? le site officiel a écrit que "la version actuelle est La 1.7.2, publié le 4 Août 2013." Où avez-vous obtenu le nouveau))?
Version la plus récente est un dev. Vous pouvez le trouver sur GitHub du projet page: github.com/kivy/kivy
OriginalL'auteur Nykakin
Dans l'exemple suivant
MyButton
suit @qua-non de l'idée. Il utilise unBooleanProperty
pour changer lebackground_color
etcolor
. Plus important, il ajoute une conditionif self.enabled:
dans leon_touch_down
. Si il n'y a pas deon_touch_down
, il n'est pason_touch_move
,on_touch_up
,on_press
ouon_release
. Par conséquent, nous pouvons considérer laButton
désactivé.- Je utiliser le nom
enabled
au lieu dedisabled
pour éviter de futurs problèmes avec en utilisant le même attribut de Kivy 1.8.0.OriginalL'auteur toto_tico