smartcitizen
Ceci est une ancienne révision du document !
Table des matières
Kivy: Smart Citizen Application Android
Ressources
- Nos capteurs La page web de nos capteurs
- API l'API de smartcitizen
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
- garden_graph_example contient 3 exemples pour étudier le problème.
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
Une image avec canal alpha sur un fond blanc dans un BoxLayout
- canvas.before:
- Rectangle:
Menu glissant
- 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
- Kivy: Garden graph Pour les courbes
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.1581164165.txt.gz · Dernière modification : 2020/02/08 12:16 de serge