Outils pour utilisateurs

Outils du site


apprendre_kivy

Ceci est une ancienne révision du document !


Kivy: l'exemple Apprendre Kivy

Avec python 3 exclusivement !

Gallerie

Le fond blanc est carré

Seule les valeurs de l'image sans fond blanc sont envoyées

Modification des Options

L'écran Options

Modification d'une valeur

Sélection des options Kivy ou Apprendre Kivy

Les options kivy par défaut

L'exemple Apprendre Kivy comprend en particulier

  • Un Screen Manager et 3 écrans
  • Un fichier de configuration avec chargement, modifications
  • Du réseau avec Twisted TCP et Multicast Using Twisted inside Kivy
  • Les scripts sont longs parce qu'il incluent de bonnes explications
  • Scatter pour gérer le multitouch avec le tactile
  • Il faut d'abord être à l'aise avec le Pong de la doc et avec A Simple Paint App pour pouvoir aborder cet exemple.

Comment chercher ?

  • Dans la doc officielle, mais les chances de trouver sont quasi nulles.
  • Dans un moteur de recherche: ça finit souvent par des posts sur stackoverflow, avec des réponses médiocres fausses, uniquement motivées par le gain de points !

Une bonne solution: Les exemples des sources de kivy

  • Télécharger les sources sur github
  • Dans votre EDI créer un projet avec uniquement les exemples
  • Rechercher dans les fichiers: si vous chercher “source:”, vous aurez la liste de tous les fichiers qui utilisent “source:”. Si c'est un kv, trouver le .py corespondant pour l'exécuter.

Les sources de apprendre-kivy sur GitHub

Comprend aussi:

  • Un serveur pour recevoir les envois du téléphone: serverkivy.py réalisé avec kivy mais prévu pour tourner seulement sur PC.
  • Des extraits des exemples de la doc officielle

Limitation

En fait, les réseaux Multicast et TCP tournent en permanence, la modification de cast dans les options bascule de l'un à l'autre.

Pour arrêter le reactor de twisted:

reactor.stop()

et pour le relancer (non testé):

install_twisted_reactor()

Bugs

Il y en a toujours, en particulier l'affichage en fonction de la taille de l'écran.

Le truc impossible

Ressources

Installation de kivy

Remarques en désordre

  • Pourquoi le *.kv ne fait pas ce que je lui dis de faire ?

Les objets héritent du précédent, qui héritent du précédent …

size_hint: None, None

coupe les héritages du size, mais si une valeur n'est pas définie, la valeur par défaut est appliquée: ex size = 100, 100

La commande magique, très surfaite !

Canvas: 
    Clear 
  • Utiliser uniquement des BoxLayout et des Box plus complexes en dernier recours.
  • Il est enfin possible de mettre des accents dans le kv !

Tout sur les fichiers kv

Tout sur les canvas

self.app

app est l'arguement qui permet d'accéder à une class depuis une autre

class ApprendreKivyApp(App):
...
    def on_start(self):
 
        reactor.listenTCP(tcp_port, TCPServerFactory(self)) # ce self est l'instance de cette classe
        # ce self est le premier argument de TCPServerFactory() donc app
        # équivaut à
        # TCPServerFactory(app=self)

appelle

class TCPServerFactory(Factory):
 
    def __init__(self, app): 
        self.app = app

Permissions Internet

Compilation avec buildozer

Buildozer pour créer une application Android avec un script python exemple avec un Hello World.

  • Ne pas mettre les modules de la bibliothèque standard python en requirements

Deboggage sur Android

plyer pour accéder aux datas Android

L'écran Options

Dans main.py et dans la class ApprendreKivyApp(App), voir les méthodes:

  • build_config(self, config)
  • build_settings(self, settings)
  • on_config_change(self, config, section, key, value)
apprendre_kivy.1578131081.txt.gz · Dernière modification : 2020/01/04 09:44 de serge