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 !

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

    canvas:
        Clear

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 !

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

Factory peut être utilisée pour enregistrer automatiquement toute classe ou module et en instancier des classes n'importe où dans votre projet.

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

,
kivy_comment_faire_un_tas_de_chose.1578590137.txt.gz · Dernière modification : 2020/01/09 17:15 de serge