Kivy: Comment faire un tas de chose

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 !

Dans Blender, le raccourcis magique c'est: Ctrl + A

Dans le *.kv, c'est: Graphical Instructions

    canvas:
        Clear

Parce que c'est comme ça ? Quand lama fâché, lui toujours faire ainsi !

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 peut être utilisée pour enregistrer automatiquement toute classe ou module et en instancier des classes n'importe où dans votre projet.

Dans buildozer.spec, définir:

android.permissions = INTERNET,CHANGE_WIFI_MULTICAST_STATE,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE

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 intégré à Crystax en Septembre 2018.

Erreur obtenue

_threadselect interface of twisted is not available on Python 3
,
  • kivy_comment_faire_un_tas_de_chose.txt
  • Dernière modification: 2018/10/25 13:44
  • par serge