Outils pour utilisateurs

Outils du site


kivy_comment_faire_un_tas_de_chose

Ceci est une ancienne révision du document !


Kivy: Comment faire un tas de chose

Pourquoi kivy est-il traître ?

Kivy masque des erreurs python

Par exemple:

  • un argument qui manque dans un appel de méthode lève une erreur pour du python habituel, mais pas dans kivy. D'où un débogage rusé nécessaire !

Comment lister tous les widgets dans le python

  • walking this tree Par exemple, avec toto = self: [type(widget) for widget in toto.walk(loopback=True)] =====Comment passer d'une class à une autre===== En fait, comment passer d'un objet à un autre ! Faire des print(de quoi ?). Commencer par print(dir(self)) puis dans la liste des méthodes et attributs, ayez de nez. Si app est dans la liste: print(dir(self.app)) ===== La commande magique ===== Dans Blender, le raccourcis magique c'est: Ctrl + A Apply the object's transformation to its data Dans le *.kv, c'est: Graphical Instructions <code python> canvas: Clear </code> ===== Pourquoi définir les attributs appelés dans *.kv comme attributs de classe ? ===== Parce que c'est comme ça ? Quand lama fâché, lui toujours faire ainsi ! Voir l'exemple ci-dessous. ===== Comment changer la couleur d'un Rectangle ? ===== Répond aussi à la Question: Comment définir et accéder aux attributs dans le main et le *.kv ? Les attributs des widgets défini dans le *.kv sont accessibles depuis le main, seulement si les attributs du widget sont définis en attribut de classe. Exemple extrait de multipong: *.kv <code python> <PongPaddle>: canvas: Color: rgb: self.rect_color Rectangle: pos: self.pos size: root.height/65, root.height/7 <Screen1>: … … paddle_0: paddle0 … … PongPaddle: # paddle_0 id: paddle0 pos: self.pos … … BoxLayout: orientation: 'horizontal' BoxLayout: size_hint_x: 0.70 canvas: Color: rgba: 1, 1, 1, 1 Line: points: [int(x*(root.top/720)) for x in root.points] joint: 'miter' width: 3 close: 1 </code> extrait de main.py <code python> … … class PongPaddle(Widget): rect_color = ListProperty([1, 1, 1]) angle = NumericProperty(0) … … class Screen1(Screen): … … def apply_paddle_red_color(self, my_num): if my_num == 0: self.paddle_0.rect_color = 1, 0, 0 … … </code> ===== Factory ===== Factory peut être utilisée pour enregistrer automatiquement toute classe ou module et en instancier des classes n'importe où dans votre projet. * API Factory using-factory-objects-in-kivy î'm not sure of everything the Factory is used for …Dans les exemples, c'est utilisé pour enregistrer des widgets, dans des trucs sans kv. ===== Réception sur Android en Multicast ===== Dans buildozer.spec, définir: <code> android.permissions = INTERNET,CHANGE_WIFI_MULTICAST_STATE,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE </code> ===== Twisted dans kivy ===== * Integrating with other Frameworks propose l'intégration des 2 ! * Exemple** avec Apprendre Kivy
,
kivy_comment_faire_un_tas_de_chose.1579074583.txt.gz · Dernière modification : 2020/01/15 07:49 de serge