Ceci est une ancienne révision du document !
Table des matières
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 !
La commande magique
Dans Blender, le raccourcis magique c'est: Ctrl + A
Dans le *.kv, c'est: Graphical Instructions
canvas: Clear
Pourquoi définir les attributs comme attributs de classe ?
Parce que c'est comme ça ? Quand lama fâché, lui toujours faire ainsi !
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
<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
extrait de main.py
... ... 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 ... ...
Factory
The factory can be used to automatically register any class or module and instantiate classes from it anywhere in your project.
Réception sur Android en Multicast
Dans buildozer.spec, définir:
android.permissions = INTERNET,CHANGE_WIFI_MULTICAST_STATE,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE
Twisted dans kivy
Les 2 API ont un
tourne_pour_toujours()
pour les lancer.
Les deux ne peuvent pas tourner dans un thread.
La solution est: twisted dans kivy mais qui ne marche qu'en python2. Twisted n'est pas encore porté entièrement en python3 en janvier 2018.
Erreur obtenue
_threadselect interface of twisted is not available on Python 3