{"id":3224,"date":"2022-01-26T11:27:31","date_gmt":"2022-01-26T10:27:31","guid":{"rendered":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/"},"modified":"2022-01-27T22:40:57","modified_gmt":"2022-01-27T21:40:57","slug":"kivy-et-la-progressbar","status":"publish","type":"page","link":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/","title":{"rendered":"Kivy et la ProgressBar"},"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=\"Utiliser le Progressbar avec Kivy\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/LN5blxwTgJw?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\">Le principe<\/h3>\n\n\n\n<p>Lorsque l&rsquo;application poss\u00e8de une action longue, il est important d&rsquo;utiliser une barre de progression pour en avertir l&rsquo;utilisateur.<\/p>\n\n\n\n<p>Il faut donc isoler cette action longue dans un thread pour pouvoir laisser la barre se mettre \u00e0 jour gr\u00e2ce au module Clock qui permet de lancer une t\u00e2che \u00e0 intervalles r\u00e9guliers. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un exemple : la barre boucle jusqu&rsquo;\u00e0 la fin du thread (Exemple06)<\/h3>\n\n\n\n<p>Comme cet exemple permet de savoir la dur\u00e9e du thread, on peut donc facilement le transformer pour que la barre afficher le pourcentage de la t\u00e2che en cours<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">&#8211; builder.py<\/h5>\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\nfrom kivy.clock import Clock\nfrom kivymd.toast import toast\nimport time\nimport threading\n\nclass MonAppliScreen(Screen) :\n\tmon_bouton = ObjectProperty()\n\tmon_progressbar = ObjectProperty()\t\n\n\tdef __init__(self, **kwargs):\n\t\tsuper().__init__(**kwargs)\n\t\t#Window.size = (800,600)\n\n\n\tdef bouton_cliquer(self) :\n\t\tself.mon_progressbar.opacity = 1\n\t\tself.event_clock = Clock.schedule_interval(self.progres_bar_update, 0.5)\t\n\n\t\tself.event_thread = threading.Event()\n\t\tself.mon_thread = threading.Thread(target=self.action_thread)\n\t\tself.mon_thread.start()\n\n\n\tdef progres_bar_update(self,dt):\n\t\tif self.mon_progressbar.value == 100:\n\t\t\tself.mon_progressbar.value = 0\t\t\t\n\t\tself.mon_progressbar.value = self.mon_progressbar.value +25\n\n\n\tdef action_thread(self) :\n\t\t# ce qu'on veut qui dure\n\t\tfor k in range (5) :\n\t\t\ttime.sleep(1)\n\t\tself.end_thread()\n\n\n\tdef end_thread(self) :\n\t\t\tself.event_thread.clear()\n\t\t\tself.event_clock.cancel()\n\t\t\tself.mon_progressbar.value = 0\t\n\t\t\tself.mon_progressbar.width = 0\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<h5 class=\"wp-block-heading\">&#8211; design.kv<\/h5>\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=\"\">MonAppliScreen :\n\tmon_bouton : mon_bouton\n\tmon_progressbar : mon_progressbar\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 : root.bouton_cliquer()\n\n\n\tMDProgressBar :\n\t\tid : mon_progressbar\n\t\tvalue : 0\n\t\tpos_hint : {\"center_x\" : 0.5}\n\t\topacity : 0<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Les sources des exemples sont disponibles ici. Le principe Lorsque l&rsquo;application poss\u00e8de une action longue, il est important d&rsquo;utiliser une barre de progression pour en avertir l&rsquo;utilisateur. Il faut donc&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3188,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3224","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kivy et la ProgressBar - 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\/kivy-et-la-progressbar\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kivy et la ProgressBar - Maths &amp; Num\u00e9rique\" \/>\n<meta property=\"og:description\" content=\"Les sources des exemples sont disponibles ici. Le principe Lorsque l&rsquo;application poss\u00e8de une action longue, il est important d&rsquo;utiliser une barre de progression pour en avertir l&rsquo;utilisateur. Il faut donc&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/\" \/>\n<meta property=\"og:site_name\" content=\"Maths &amp; Num\u00e9rique\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-27T21:40:57+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\\\/kivy-et-la-progressbar\\\/\",\"url\":\"https:\\\/\\\/wordpress.callac.online\\\/index.php\\\/python\\\/des-interfaces-graphiques-avec-kivy\\\/kivy-et-la-progressbar\\\/\",\"name\":\"Kivy et la ProgressBar - Maths &amp; Num\u00e9rique\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wordpress.callac.online\\\/#website\"},\"datePublished\":\"2022-01-26T10:27:31+00:00\",\"dateModified\":\"2022-01-27T21:40:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wordpress.callac.online\\\/index.php\\\/python\\\/des-interfaces-graphiques-avec-kivy\\\/kivy-et-la-progressbar\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wordpress.callac.online\\\/index.php\\\/python\\\/des-interfaces-graphiques-avec-kivy\\\/kivy-et-la-progressbar\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wordpress.callac.online\\\/index.php\\\/python\\\/des-interfaces-graphiques-avec-kivy\\\/kivy-et-la-progressbar\\\/#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\":\"Kivy et la ProgressBar\"}]},{\"@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:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g\",\"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:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g\"},\"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":"Kivy et la ProgressBar - 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\/kivy-et-la-progressbar\/","og_locale":"fr_FR","og_type":"article","og_title":"Kivy et la ProgressBar - Maths &amp; Num\u00e9rique","og_description":"Les sources des exemples sont disponibles ici. Le principe Lorsque l&rsquo;application poss\u00e8de une action longue, il est important d&rsquo;utiliser une barre de progression pour en avertir l&rsquo;utilisateur. Il faut donc&hellip;","og_url":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/","og_site_name":"Maths &amp; Num\u00e9rique","article_modified_time":"2022-01-27T21:40:57+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\/kivy-et-la-progressbar\/","url":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/","name":"Kivy et la ProgressBar - Maths &amp; Num\u00e9rique","isPartOf":{"@id":"https:\/\/wordpress.callac.online\/#website"},"datePublished":"2022-01-26T10:27:31+00:00","dateModified":"2022-01-27T21:40:57+00:00","breadcrumb":{"@id":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wordpress.callac.online\/index.php\/python\/des-interfaces-graphiques-avec-kivy\/kivy-et-la-progressbar\/#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":"Kivy et la ProgressBar"}]},{"@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:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g","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:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g"},"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\/3224","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=3224"}],"version-history":[{"count":3,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3224\/revisions"}],"predecessor-version":[{"id":3233,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3224\/revisions\/3233"}],"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=3224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}