Inclure et utiliser des fichiers Kv externes avec Python Kivy

Aperçu

J'ai essayé de tester une application de base qui importe un fichier Kv externe en utilisant Inclure.

environnement

point

Placement des fichiers

project-root
|-- main.py
|-- test.kv
`-- gui/
    `-- tab_test.kv

Le code est ci-dessous.

main.py

main.py


from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty

class RootWidget(BoxLayout):
    
    #Bouton défini dans le fichier Kv_Définir inclure le widget dans le fichier Python
    button_include = ObjectProperty()  
    
    def print_obj(self, obj):
        print(obj)
        
    def check_button_include(self):
        print(self.button_include)  #Accédez à la classe de widget d'un fichier Kv externe à partir d'un fichier Python

class TestApp(App):
    def build(self):
        return RootWidget()


if __name__ == '__main__':
    TestApp().run()

Fichier Kv contenant le widget racine

test.kv


#:include gui/tab_test.kv  #Importer un fichier Kv externe

<RootWidget>:
    # button_Définir include comme propriété de RootWidget
    button_include: tab_button_include.button_include

    TabbedPanel:
        do_default_tab: False
        
        TabbedPanelItem:
            text: 'Tab1'
            BoxLayout:
                Button:
                    text: 'button 1'
                    on_press: root.print_obj(self)
                Button:
                    text: 'button 2'
                    on_press: root.check_button_include()
        TabbedPanelItem:
            text: 'Tab2'
            ButtonInclude:  #Utilisez la classe de widget définie dans le fichier Kv externe
                id: tab_button_include  #Attribuer un identifiant à la classe de widget définie

Fichier Kv externe

tab_test.kv


<ButtonInclude@Button>:
    button_include: button_include

    id: button_include
    text: 'button include'
    on_press: app.root.print_obj(self)  # "app.root.method"Exécutez la méthode RootWidget à partir du fichier Kv externe avec

Résultat d'exécution

kivy_test_include_tab1.png kivy_test_include_tab2.png

Résultat d'opération de chaque bouton

Button1          ->   <kivy.uix.button.Button object at 0x000001E0A8DE18D0>
Button2          ->   <kivy.factory.ButtonInclude object at 0x000001E0A8DE1A08>
Button include   ->   <kivy.factory.ButtonInclude object at 0x000001E0A8DE1A08>

référence

Recommended Posts

Inclure et utiliser des fichiers Kv externes avec Python Kivy
Manipuler des fichiers et des dossiers en Python
Exporter et exporter des fichiers en Python
Lire et écrire des fichiers JSON avec Python
Comment utiliser is et == en Python
Lire et écrire des fichiers CSV et JSON avec Python
Utilisez config.ini avec Python
Utiliser des dates en Python
Utiliser Valgrind avec Python
Utiliser le profileur en Python
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
% Et str.format () en Python. Lequel utilisez-vous?
Enregistrer des listes, des dictionnaires et des taples dans des fichiers externes python
Recherche récursive de fichiers et de répertoires en Python et sortie
Utiliser l'expression let en Python
Utiliser le protocole de mesure avec Python
Utiliser la fonction de rappel en Python
Utiliser le magasin de paramètres en Python
Utiliser le cache HTTP en Python
Exécuter des commandes externes avec python
Utilisez l'ODM de MongoDB avec Python
Utiliser un dict clé de liste en Python
Utiliser Random Forest avec Python
Utilisez Spyder de Python IDE
Pile et file d'attente en Python
Exécution de commandes externes en Python
Unittest et CI en Python
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
[Python] Utilisez ceci pour lire et écrire des fichiers wav [wavio]
[Astuces] Problèmes et solutions dans le développement de python + kivy
Comment exécuter des commandes et des scripts shell externes en python
Imprimer un PDF en Python sous Windows: utiliser une application externe
Translocation de fichiers CSV avec Python Partie 1
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre list () et [] en Python
Différence entre == et est en python
Afficher les photos en Python et html
Utilisez le tissu tel quel en python (fabric3)
Algorithme de tri et implémentation en Python
[Python / matplotlib] Comprendre et utiliser FuncAnimation
Comment utiliser SQLite en Python
Barre de progression en pop-up avec Python Kivy
À propos de Python et Cython dtype
Gestion des fichiers JSON en Python
Téléchargez des fichiers Google Drive en Python
Affectations et modifications des objets Python
Utilisez Flask pour exécuter des fichiers externes
Utiliser rospy avec virtualenv dans Python3
Vérifiez et déplacez le répertoire en Python
Chiffrement avec Python: IND-CCA2 et RSA-OAEP
Trier les gros fichiers texte en Python
Hashing de données en R et Python
Comment utiliser Mysql avec python
Utiliser Python mis en pyenv avec NeoVim
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Synthèse de fonctions et application en Python