kivy_comment_faire_un_tas_de_chose
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| kivy_comment_faire_un_tas_de_chose [2020/11/02 19:01] – [Comment éviter ou résoudre des bugs à la compilation avec buildozer] serge | kivy_comment_faire_un_tas_de_chose [2022/11/19 09:49] (Version actuelle) – [Sur internet] serge | ||
|---|---|---|---|
| Ligne 10: | Ligne 10: | ||
| ====Sur internet==== | ====Sur internet==== | ||
| * Dans la **[[https:// | * Dans la **[[https:// | ||
| - | * Dans un moteur de recherche: ça finit souvent par des posts sur stackoverflow, | + | * Dans un moteur de recherche: ça finit souvent par des posts sur stackoverflow, |
| + | * **[[https:// | ||
| ====Une bonne solution: Les exemples des sources de kivy==== | ====Une bonne solution: Les exemples des sources de kivy==== | ||
| * Télécharger les sources sur [[https:// | * Télécharger les sources sur [[https:// | ||
| * Dans votre EDI créer un projet avec uniquement les [[https:// | * Dans votre EDI créer un projet avec uniquement les [[https:// | ||
| * Rechercher dans les fichiers: si vous chercher " | * Rechercher dans les fichiers: si vous chercher " | ||
| - | * | + | |
| ====Gallery of Examples==== | ====Gallery of Examples==== | ||
| **[[https:// | **[[https:// | ||
| Ligne 46: | Ligne 46: | ||
| * Sur votre PC, définir la taille de votre fenêtre | * Sur votre PC, définir la taille de votre fenêtre | ||
| <code python> | <code python> | ||
| - | from kivy.core.window import Window | + | from plyer import utils |
| - | # Les 3 lignes ci-dessous sont à commenter pour buildozer | + | |
| - | # L' | + | from oscpy.client import OSCClient |
| - | k = 1.0 | + | from oscpy.server import OSCThreadServer |
| - | WS = (int(1280*k), int(720*k)) | + | |
| - | Window.size = WS | + | print(" |
| + | ANDROID = utils.platform._platform_android | ||
| + | print(" | ||
| + | if not ANDROID: | ||
| + | | ||
| + | # Simulation de l' | ||
| + | k = 0.8 | ||
| + | WS = (int(720*k), int(1280*k)) | ||
| + | Window.size = WS | ||
| + | os.environ[' | ||
| + | |||
| + | from jnius import autoclass | ||
| </ | </ | ||
| Ligne 83: | Ligne 94: | ||
| ...... | ...... | ||
| </ | </ | ||
| - | =====Comment passer d'une class à une autre===== | + | =====Comment passer |
| En fait, **comment passer d'un objet à un autre !** | En fait, **comment passer d'un objet à un autre !** | ||
| Ligne 90: | Ligne 101: | ||
| puis dans la liste des méthodes et attributs, ayez de nez. Si app est dans la liste: | puis dans la liste des méthodes et attributs, ayez de nez. Si app est dans la liste: | ||
| print(dir(self.app)) | print(dir(self.app)) | ||
| - | | + | |
| + | ====Comment récupérer self.app dans tous les objets==== | ||
| + | Une solution élégante est utilisée dans **[[https:// | ||
| + | <code python> | ||
| + | class AccelerometerApp(App): | ||
| + | def build(self): | ||
| + | return Accelerometer(self) | ||
| + | |||
| + | class Accelerometer(BoxLayout): | ||
| + | def __init__(self, | ||
| + | super().__init__(**kwargs) | ||
| + | self.app = app | ||
| + | self.app.osc = OSC() | ||
| + | |||
| + | class OSC: | ||
| + | def __init__(self): | ||
| + | self.histo = [] | ||
| + | self.server = OSCThreadServer() | ||
| + | self.server.bind(b'/ | ||
| + | |||
| + | def on_histo(self, | ||
| + | self.histo = .... | ||
| + | |||
| + | class Screen2: | ||
| + | def __init__(self): | ||
| + | self.app = App.get_running_app() | ||
| + | # et appel de l' | ||
| + | self.app.osc.histo | ||
| + | Clock.schedule_once(self._once, | ||
| + | def _once(self, dt): | ||
| + | Clock.schedule_interval(self.update, | ||
| + | | ||
| + | def update(self, | ||
| + | blabla = self.app.osc.histo | ||
| + | # blabla retrouve la valeur de histo de OSC !!!! | ||
| + | </ | ||
| Ligne 171: | Ligne 217: | ||
| background_color: | background_color: | ||
| </ | </ | ||
| + | Pour avoir des couleurs flashy, mettre des valeurs supérieures à 1: exemple\\ | ||
| + | background_color: | ||
| + | {{ : | ||
| =====Texte en gras dans un label===== | =====Texte en gras dans un label===== | ||
| * **[[https:// | * **[[https:// | ||
| Ligne 200: | Ligne 248: | ||
| android.permissions = INTERNET, | android.permissions = INTERNET, | ||
| </ | </ | ||
| + | Les permissions définies dans buildozer.spec crée le bouton enable/ | ||
| ===== Twisted dans kivy ===== | ===== Twisted dans kivy ===== | ||
| Ligne 212: | Ligne 261: | ||
| ni | ni | ||
| requirements = python3, | requirements = python3, | ||
| + | </ | ||
| mais | mais | ||
| + | <code python> | ||
| requirements = python3, | requirements = python3, | ||
| #,jnius | #,jnius | ||
| </ | </ | ||
| - | Le buildozer.spec est seulement presque du python. Ce commentaire m'a donné des message | + | Le buildozer.spec est seulement presque du python. Ce commentaire |
| =====Bugs===== | =====Bugs===== | ||
| Ligne 226: | Ligne 277: | ||
| sudo apt install xclip | sudo apt install xclip | ||
| | | ||
| + | =====Comment avoir une action maintenue si maintien d'un Button===== | ||
| + | <code python accelerometer.kv> | ||
| + | Button: | ||
| + | id: recul | ||
| + | markup: True | ||
| + | background_color: | ||
| + | font_size: " | ||
| + | text: ' | ||
| + | on_press: root.do_back_forward(-1) | ||
| + | on_release: root.do_end() | ||
| + | Button: | ||
| + | id: avance | ||
| + | markup: True | ||
| + | background_color: | ||
| + | font_size: " | ||
| + | text: ' | ||
| + | on_press: root.do_back_forward(1) | ||
| + | on_release: root.do_end() | ||
| + | </ | ||
| + | |||
| + | <code python main.py> | ||
| + | def do_back_forward(self, | ||
| + | self.bf = 1 | ||
| + | bt = Thread(target=self.back_forward_loop, | ||
| + | bt.start() | ||
| + | |||
| + | def back_forward_loop(self, | ||
| + | while self.bf: | ||
| + | sleep(0.1) | ||
| + | self.gap = self.gap + sens*10 | ||
| + | if self.gap > 0: self.gap = 0 | ||
| + | l = len(self.app.osc.histo_xyz) | ||
| + | if self.gap < -l + 500: self.gap = -l + 500 | ||
| + | print(" | ||
| + | |||
| + | def do_end(self): | ||
| + | self.bf = 0 | ||
| + | </ | ||
| + | |||
| {{tag> kivy python sb }} | {{tag> kivy python sb }} | ||
kivy_comment_faire_un_tas_de_chose.1604343708.txt.gz · Dernière modification : de serge
