Outils pour utilisateurs

Outils du site


smartcitizen

Ceci est une ancienne révision du document !


Kivy: Smart Citizen Application Android

Ressources

apk

smartcitizen.apk du 31/01/2020

Les choses non réussies

  • Créer les box du menu déroulant dans le main.py alors que ça marche dans TapOSC mais sans menu déroulant.
  • Un simple label transparent au dessus d'un widget

Les difficultés rencontrées

L'accès à des variables d'une class depuis une autre

Exemple: la class A peut accéder à la variable self.toto de la class B,
mais pas l'inverse ! la class B ne peut pas accéder à la variable self.truc de la class A.

Solution: Un Clock dans A actualise la valeur de B.

Création du graph dans le kv

Widgets Kivy utilisés

  • ScreenManager: Plusieurs écrans Screen manager. Dans cette application le Screen manager est créé dans le kv

Une barre de menu

  • ActionBar:
  • ActionView:
  • ActionPrevious:
  • ActionOverflow:
  • ActionButton:
  • ActionGroup:

Widgets classiques

Widgets classiques pour interface utilisateur

  • BoxLayout:
  • GridLayout:
  • Button:
  • Label:

Une image en background

  • ScrollView: Défilement de la liste des capteurs, voir le kv. Avec une répétition de 16 Box peu élégantes, mais qui marche !

Affichage d'info

  • Popup:

Une belle courbe

buildozer.spec

[app]
title = Smart Citizen
package.name = smartcitizen
package.domain = org.test
source.dir = .
source.include_exts = py,png,jpg,kv,atlas
source.exclude_dirs = old, bin, recherche, garden_graph_example
source.include_patterns = images/*.jpg,images/*.png
version.regex = __version__ = ['"](.*)['"]
version.filename = %(source.dir)s/main.py
requirements = python3,kivy,requests,kivy_garden.graph
garden_requirements = graph
orientation = all
fullscreen = 1
android.permissions = INTERNET
android.arch = armeabi-v7a
[buildozer]
log_level = 2
warn_on_root = 1

Thread in Kivy

Pour stopper un thread à la fermeture de la fenêtre, le définir comme Salsa du démon

        thread_update = threading.Thread(target=self.update)
        thread_update.setDaemon(True)
        thread_update.start()
smartcitizen.1580478874.txt.gz · Dernière modification: 2020/01/31 14:54 par serge