{"id":3191,"date":"2022-01-24T13:02:50","date_gmt":"2022-01-24T12:02:50","guid":{"rendered":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/"},"modified":"2022-01-27T22:38:05","modified_gmt":"2022-01-27T21:38:05","slug":"structurer-son-projet-kivy","status":"publish","type":"page","link":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/","title":{"rendered":"Structurer son projet Kivy"},"content":{"rendered":"\n<p>Les sources des exemples sont disponibles <a href=\"https:\/\/filedn.com\/lpKG7uY9hIHVel5exA5Ik80\/Kivy_Demo\/\" target=\"_blank\" rel=\"noreferrer noopener\">ici<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Structurer un projet Kivy\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/sNs6Hnx9Zqk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Travailler avec un fichier kv<\/h3>\n\n\n\n<p>M\u00eame si ce n&rsquo;est pas obligatoire, il me semble plus simple de travailler avec un ou plusieurs fichiers kv. Ce ou ces fichiers vont vous permettre de d\u00e9finir la structure de votre interface :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>les composants,<\/li><li>leurs positionnements,<\/li><li>leurs tailles<\/li><li>les \u00e9v\u00e9nements associ\u00e9s<\/li><\/ul>\n\n\n\n<p>Accompagnant ce fichier kv, on aura un ou plusieurs fichiers Python.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un solution pour des exemples basiques ( Exemple01 )<\/h3>\n\n\n\n<p>Dans cette solution, on privil\u00e9gie la facilit\u00e9. Par contre, on sera vite limit\u00e9 par un code vite brouillon.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">&#8211; Le fichier builder.py<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from kivymd.app import MDApp\nfrom kivy.lang import Builder\nfrom kivy.core.window import Window\nfrom kivymd.toast import toast\n\nclass MonAppli(MDApp):\n\ttitle = \"Mon appli\"\n\t#icon = \"Images\/icon.png\"  \n\n\tdef build(self):\n\t\tself.theme_cls.theme_style = \"Light\"\n\t\tself.theme_cls.primary_palette = \"Teal\"\n\t\tWindow.size = (800,600)\n\t\ttoast(\"C'est parti !\")\n\n\t\treturn Builder.load_file(\"design.kv\")\n\n\tdef bouton_cliquer(self) :\n\t\tself.root.ids.mon_label.text = \"Tu as cliqu\u00e9 sur le bouton !\"\n\n\nif __name__ == '__main__':\n\tMonAppli().run()<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">&#8211; Le fichier design.kv<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Screen :\n\n\tMDRaisedButton :\n\t\tid : mon_bouton\n\t\ttext : \"Cliquer\"\n\t\tpos_hint : {\"center_x\" : 0.5,\"center_y\" : 0.7}\n\t\ton_release : app.bouton_cliquer()\n\n\tMDLabel : \n\t\tid : mon_label\n\t\ttext: \"Mon texte de label\"\n\t\tfont_style : \"H6\"\n\t\thalign : \"center\"\n\t\tpos_hint : {\"center_x\" : 0.5,\"center_y\" : 0.4}<\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Une solution \u00e0 conseiller ( Exemple02 )<\/h3>\n\n\n\n<p>La solution suivante demande un peu plus d&rsquo;efforts mais elle a le m\u00e9rite de mieux structurer son code autour des principaux composants graphiques.<\/p>\n\n\n\n<p>Pour cela, on va associer une classe \u00e0 un composant graphique majeur. Le code des \u00e9v\u00e9nements pourra donc y \u00eatre attach\u00e9 plut\u00f4t que de rester dans la classe de l&rsquo;application.<\/p>\n\n\n\n<p>On pourra ainsi utiliser plusieurs classes de la sorte et plusieurs fichiers kv et Python.<\/p>\n\n\n\n<p>Dans cette m\u00e9thode, on devra faire un effort pour faire remonter les identifiants des composants graphiques inclus dans le composant majeur.<\/p>\n\n\n\n<p>Dans cette exemple, le composant majeur choisi est de type \u00ab\u00a0Screen\u00a0\u00bb mais on peut le faire avec n&rsquo;importe quel composant (\u00ab\u00a0ScreenManager\u00a0\u00bb, \u00ab\u00a0BoxLayout\u00a0\u00bb, &#8230;)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">&#8211; Le fichier builder.py<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from kivymd.app import MDApp\nfrom kivy.lang import Builder\nfrom kivy.properties import ObjectProperty\nfrom kivy.core.window import Window\nfrom kivymd.toast import toast\n\nfrom kivy.uix.screenmanager import Screen\n\n\nclass MonAppliScreen(Screen) :\n\tmon_bouton = ObjectProperty()\n\tmon_label = ObjectProperty()\n\n\tdef __init__(self, **kwargs):\n\t\tsuper().__init__(**kwargs)\n\t\t#Window.size = (800,600)\n\t\ttoast(\"C'est parti !\")\n\n\tdef bouton_cliquer(self) :\n\t\tself.mon_label.text = \"Tu as cliqu\u00e9 sur le bouton !\"\n\n\n\nclass MonAppli(MDApp):\n\ttitle = \"Mon appli\"\n\t#icon = \"Images\/icon.png\" \n\n\tdef build(self):\n\t\tself.theme_cls.theme_style = \"Light\"\n\t\tself.theme_cls.primary_palette = \"Teal\"\n\n\t\treturn Builder.load_file(\"design.kv\")\n\n\n\nif __name__ == '__main__':\n\tMonAppli().run()<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">&#8211; Le fichier design.kv<\/h4>\n\n\n\n<p>MonAppliScreen :<br>mon_bouton : mon_bouton<br>mon_label : mon_label<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">MDRaisedButton :\n    id : mon_bouton\n    text : \"Cliquer\"\n    pos_hint : {\"center_x\" : 0.5,\"center_y\" : 0.7}\n    on_release : root.bouton_cliquer()\n\nMDLabel : \n    id : mon_label\n    text: \"Mon texte de label\"\n    halign : \"center\"\n    font_style : \"H6\"\n    pos_hint : {\"center_x\" : 0.5,\"center_y\" : 0.4}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Les sources des exemples sont disponibles ici. Travailler avec un fichier kv M\u00eame si ce n&rsquo;est pas obligatoire, il me semble plus simple de travailler avec un ou plusieurs fichiers&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3188,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3191","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Structurer son projet Kivy - Maths &amp; Num\u00e9rique<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Structurer son projet Kivy - Maths &amp; Num\u00e9rique\" \/>\n<meta property=\"og:description\" content=\"Les sources des exemples sont disponibles ici. Travailler avec un fichier kv M\u00eame si ce n&rsquo;est pas obligatoire, il me semble plus simple de travailler avec un ou plusieurs fichiers&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/\" \/>\n<meta property=\"og:site_name\" content=\"Maths &amp; Num\u00e9rique\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-27T21:38:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/\",\"url\":\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/\",\"name\":\"Structurer son projet Kivy - Maths &amp; Num\u00e9rique\",\"isPartOf\":{\"@id\":\"https:\/\/wordpress.callac.online\/#website\"},\"datePublished\":\"2022-01-24T12:02:50+00:00\",\"dateModified\":\"2022-01-27T21:38:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/wordpress.callac.online\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/wordpress.callac.online\/index.php\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Des interfaces graphiques avec Kivy\",\"item\":\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Structurer son projet Kivy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wordpress.callac.online\/#website\",\"url\":\"https:\/\/wordpress.callac.online\/\",\"name\":\"Maths & Num\u00e9rique\",\"description\":\"Des outils pour les enseignants de math\u00e9matiques et de num\u00e9rique\",\"publisher\":{\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wordpress.callac.online\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940\",\"name\":\"dlefur\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g\",\"caption\":\"dlefur\"},\"logo\":{\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/\"},\"description\":\"Enseignant de math\u00e9matiques Lyc\u00e9e Pasteur S\u00e3o Paulo\",\"sameAs\":[\"http:\/\/wordpress.callac.online\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Structurer son projet Kivy - Maths &amp; Num\u00e9rique","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/","og_locale":"fr_FR","og_type":"article","og_title":"Structurer son projet Kivy - Maths &amp; Num\u00e9rique","og_description":"Les sources des exemples sont disponibles ici. Travailler avec un fichier kv M\u00eame si ce n&rsquo;est pas obligatoire, il me semble plus simple de travailler avec un ou plusieurs fichiers&hellip;","og_url":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/","og_site_name":"Maths &amp; Num\u00e9rique","article_modified_time":"2022-01-27T21:38:05+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/","url":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/","name":"Structurer son projet Kivy - Maths &amp; Num\u00e9rique","isPartOf":{"@id":"https:\/\/wordpress.callac.online\/#website"},"datePublished":"2022-01-24T12:02:50+00:00","dateModified":"2022-01-27T21:38:05+00:00","breadcrumb":{"@id":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/structurer-son-projet-kivy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/wordpress.callac.online\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/wordpress.callac.online\/index.php\/python\/"},{"@type":"ListItem","position":3,"name":"Des interfaces graphiques avec Kivy","item":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/"},{"@type":"ListItem","position":4,"name":"Structurer son projet Kivy"}]},{"@type":"WebSite","@id":"https:\/\/wordpress.callac.online\/#website","url":"https:\/\/wordpress.callac.online\/","name":"Maths & Num\u00e9rique","description":"Des outils pour les enseignants de math\u00e9matiques et de num\u00e9rique","publisher":{"@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wordpress.callac.online\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940","name":"dlefur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g","caption":"dlefur"},"logo":{"@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/"},"description":"Enseignant de math\u00e9matiques Lyc\u00e9e Pasteur S\u00e3o Paulo","sameAs":["http:\/\/wordpress.callac.online"]}]}},"_links":{"self":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/comments?post=3191"}],"version-history":[{"count":6,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3191\/revisions"}],"predecessor-version":[{"id":3230,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3191\/revisions\/3230"}],"up":[{"embeddable":true,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3188"}],"wp:attachment":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/media?parent=3191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}