{"id":5797,"date":"2024-08-29T06:16:38","date_gmt":"2024-08-29T06:16:38","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/utiliser-le-widget-label-avec-tkinter\/"},"modified":"2024-08-29T06:16:42","modified_gmt":"2024-08-29T06:16:42","slug":"utiliser-le-widget-label-avec-tkinter","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/utiliser-le-widget-label-avec-tkinter\/","title":{"rendered":"6.3 Utiliser le Widget Label avec Tkinter"},"content":{"rendered":"\n<p><strong>Utiliser le Widget Label avec Tkinter<\/strong> est une comp\u00e9tence fondamentale pour cr\u00e9er des interfaces utilisateur en Python. Ce tutoriel vous guidera \u00e0 travers les concepts et les \u00e9tapes n\u00e9cessaires pour ma\u00eetriser le widget Label dans Tkinter, afin de construire des applications interactives et esth\u00e9tiques.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction au Widget Label de Tkinter<\/h2>\n\n\n\n<div id=\"videoContainer\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;\">\n  <iframe src=\"https:\/\/player.vimeo.com\/video\/583369294?dnt=1&#038;fullscreen=0&#038;pip=0\" loading=\"lazy\" loading=\"lazy\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen id=\"vimeoPlayer\"><\/iframe>\n  \n  <!-- Popup Desktop -->\n  <div id=\"popupContainer\" class=\"desktop-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 400px; padding: 20px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <h2 style=\"color: #333; font-size: 1.5em; margin: 10px 0;\" id=\"profitez-de-loffre-spciale-\">Profitez de l\u2019offre sp\u00e9ciale !<\/h2>\n    <p style=\"color: #e74c3c; font-size: 1.2em; margin: 10px 0;\">Obtenez notre cours pour seulement <strong id=\"price\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: block; padding: 10px 20px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 1em; margin: 20px auto;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 10px 20px; font-size: 1em;\">Fermer<\/button>\n  <\/div>\n\n  <!-- Popup Mobile -->\n  <div id=\"popupContainerMobile\" class=\"mobile-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 300px; padding: 15px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <p style=\"color: #e74c3c; font-size: 1em; margin: 5px 0;\">Cours sp\u00e9cial \u00e0 <strong id=\"priceMobile\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: inline-block; padding: 8px 15px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 0.9em;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 5px 10px; font-size: 0.9em;\">Fermer<\/button>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var iframe = document.getElementById('vimeoPlayer');\n    var player = new Vimeo.Player(iframe);\n    var isPopupDisplayed = false;\n\n    player.on('play', function() {\n        if (!isPopupDisplayed) {\n            player.on('timeupdate', function(data) {\n                if (data.seconds >= 120 && !isPopupDisplayed) { \/\/ 120 seconds = 2 minutes\n                    \/\/ Pause the vid\u00e9o Vimeo et display the popup\n                    player.pause().then(function() {\n                        if (window.innerWidth > 768) {\n                            document.querySelector('.desktop-popup').style.display = 'block';\n                        } else {\n                            document.querySelector('.mobile-popup').style.display = 'block';\n                        }\n                        fetchPriceAndUpdatePopup();\n                        isPopupDisplayed = true;\n                    });\n                }\n            });\n        }\n    });\n\n    function fetchPriceAndUpdatePopup() {\n        fetch('https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144')\n            .then(response => response.text())\n            .then(html => {\n                var parser = new DOMParser();\n                var fetchedDoc = parser.parseFromString(html, 'text\/html');\n                var priceElement = fetchedDoc.querySelector('.ammount .fw-500');\n                var originalPriceElement = fetchedDoc.querySelector('.ammount del');\n                var price = priceElement ? priceElement.textContent.trim() : '29.5\u20ac';\n                var originalPrice = originalPriceElement ? originalPriceElement.textContent.trim() : '59\u20ac';\n\n                document.getElementById('price').textContent = price;\n                document.getElementById('priceMobile').textContent = price;\n                document.querySelector('.desktop-popup del').textContent = originalPrice;\n                document.querySelector('.mobile-popup del').textContent = originalPrice;\n            })\n            .catch(error => console.error('Error fetching the price:', error));\n    }\n\n    function closePopup() {\n        document.querySelector('.desktop-popup').style.display = 'none';\n        document.querySelector('.mobile-popup').style.display = 'none';\n        player.play(); \/\/ Allows resuming the video only after closing the popup\n    }\n});\n<\/script>\n\n\n\n<p>Le widget Label dans Tkinter permet d&rsquo;afficher du texte ou des images dans votre application. Il est souvent utilis\u00e9 pour afficher des messages d&rsquo;information, des \u00e9tiquettes ou m\u00eame des r\u00e9sultats calcul\u00e9s en fonction des entr\u00e9es utilisateur. Plongeons dans les sp\u00e9cificit\u00e9s de ce widget et apprenons comment l&rsquo;utiliser efficacement.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9er un Widget Label Simple<\/h3>\n\n\n\n<p>Pour ajouter un widget Label \u00e0 votre interface Tkinter, il suffit de cr\u00e9er une instance de la classe <code>Label<\/code> et de la placer dans une fen\u00eatre. Voici un exemple simple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import tkinter as tk\n\nroot = tk.Tk()\n\n# Cr\u00e9er un Label simple\nlabel = tk.Label(root, text=\"Bienvenue sur Tkinter!\")\nlabel.pack()\n\nroot.mainloop()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Personnaliser un Widget Label<\/h3>\n\n\n\n<p>Vous pouvez personnaliser votre widget Label en utilisant divers param\u00e8tres pour ajuster son apparence et son comportement. Par exemple, vous pouvez modifier la couleur de texte, la police, le fond, et plus encore :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import tkinter as tk\n\nroot = tk.Tk()\n\n# Cr\u00e9er un Label avec des personnalisations\nlabel = tk.Label(root, text=\"Personnaliser votre Label\", fg=\"blue\", font=(\"Helvetica\", 16, \"italic\"), bg=\"yellow\")\nlabel.pack()\n\nroot.mainloop()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Mettre \u00e0 Jour le Texte d&rsquo;un Label Dynamiquement<\/h3>\n\n\n\n<p>Dans certaines applications, vous aurez besoin de changer le texte du label en r\u00e9ponse \u00e0 des \u00e9v\u00e9nements utilisateur. Cela peut \u00eatre fait en associant le widget Label \u00e0 une variable Tkinter observable comme <code>StringVar<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import tkinter as tk\n\ndef update_text():\n    label_text.set(\"Le texte a \u00e9t\u00e9 mis \u00e0 jour!\")\n\nroot = tk.Tk()\n\n# Cr\u00e9er une variable observable\nlabel_text = tk.StringVar()\nlabel_text.set(\"Cliquez sur le bouton pour changer ce texte\")\n\n# Cr\u00e9er le Label associ\u00e9 \u00e0 la variable observable\nlabel = tk.Label(root, textvariable=label_text)\nlabel.pack()\n\n# Cr\u00e9er un bouton pour mettre \u00e0 jour le texte du label\nbutton = tk.Button(root, text=\"Changer le texte\", command=update_text)\nbutton.pack()\n\nroot.mainloop()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ajouter une Image \u00e0 un Label<\/h3>\n\n\n\n<p>Le widget Label peut aussi afficher des images. Vous devez d&rsquo;abord charger l&rsquo;image, puis la passer comme argument au widget Label :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import tkinter as tk\n\nroot = tk.Tk()\n\n# Charger l'image\nimage = tk.PhotoImage(file=\"path\/to\/your\/image.png\")\n\n# Cr\u00e9er un Label avec une image\nlabel = tk.Label(root, image=image)\nlabel.pack()\n\nroot.mainloop()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Combiner Texte et Image dans un Label<\/h3>\n\n\n\n<p>Vous pouvez \u00e9galement combiner du texte et une image dans un m\u00eame label. Voici comment proc\u00e9der :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import tkinter as tk\n\nroot = tk.Tk()\n\n# Charger l'image\nimage = tk.PhotoImage(file=\"path\/to\/your\/image.png\")\n\n# Cr\u00e9er un Label avec du texte et une image\nlabel = tk.Label(root, text=\"Image et Texte\", image=image, compound=\"left\") # ou \"right\", \"top\", \"bottom\"\nlabel.pack()\n\nroot.mainloop()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Utilisations Avanc\u00e9es du Widget Label<\/h3>\n\n\n\n<p>Pour aller plus loin, vous pouvez cr\u00e9er des labels qui r\u00e9agissent \u00e0 des \u00e9v\u00e9nements tels que des clics, ou m\u00eame des labels qui affichent des donn\u00e9es dynamiques provenant de sources externes :<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Changer la Couleur d&rsquo;un Label au Survol de la Souris<\/h4>\n\n\n\n<p>Un exemple d&rsquo;utilisation avanc\u00e9e est de changer la couleur du texte d&rsquo;un label lorsque la souris le survole :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import tkinter as tk\n\ndef on_enter(event):\n    label.config(fg=\"red\")\n\ndef on_leave(event):\n    label.config(fg=\"black\")\n\nroot = tk.Tk()\n\n# Cr\u00e9er un Label\nlabel = tk.Label(root, text=\"Survolez-moi avec la souris\")\nlabel.pack()\n\n# Attacher des \u00e9v\u00e9nements\nlabel.bind(\"<Enter>\", on_enter)\nlabel.bind(\"<Leave>\", on_leave)\n\nroot.mainloop()\n<\/code><\/pre>\n\n\n\n<p>En poursuivant votre exploration du widget Label dans Tkinter, vous pouvez consulter des ressources externes pour \u00e9largir votre compr\u00e9hension. Le <a href=\"https:\/\/realpython.com\/\" rel=\"noopener\" target=\"_blank\">site Real Python<\/a> propose des articles d\u00e9taill\u00e9s sur la programmation avec Tkinter, et le <a href=\"https:\/\/docs.python.org\/3\/library\/tkinter.html\" rel=\"noopener\" target=\"_blank\">site officiel de la documentation Python<\/a> offre une couverture exhaustive des widgets et m\u00e9thodes disponibles dans Tkinter. Vous pouvez aussi suivre des cours en ligne comme ceux de <a href=\"https:\/\/www.coursera.org\/\" rel=\"noopener\" target=\"_blank\">Coursera<\/a> pour un apprentissage structur\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion sur le Widget Label Tkinter<\/h2>\n\n\n\n<p>Le widget Label en Tkinter est un \u00e9l\u00e9ment cl\u00e9 pour l&rsquo;affichage de textes et d&rsquo;images dans vos applications GUI. Sa capacit\u00e9 \u00e0 afficher des informations statiques et dynamiques le rend indispensable pour une interface utilisateur bien con\u00e7ue. Continuez \u00e0 exp\u00e9rimenter avec les diverses options de personnalisation pour d\u00e9couvrir tout le potentiel de ce widget. Pour plus de tutoriels sur Tkinter, explorez notre article sur <a href=\"https:\/\/wikiform.fr\/codespace\/tkinter-interm\u00e9diaire-avanc\u00e9\">les fonctionnalit\u00e9s interm\u00e9diaires et avanc\u00e9es de Tkinter<\/a> et pour apprendre \u00e0 cr\u00e9er des fen\u00eatres avec Tkinter, consultez notre <a href=\"https:\/\/wikiform.fr\/codespace\/cr\u00e9er-une-fen\u00eatre-avec-tkinter-tutoriel\">guide d\u00e9taill\u00e9<\/a>.<\/p>\n\n\n\n<p>Si vous \u00eates int\u00e9ress\u00e9s par d&rsquo;autres sujets avanc\u00e9s en programmation Python, vous pourrez trouver des guides pratiques sur <a href=\"https:\/\/wikiform.fr\/codespace\/creation-et-utilisation-des-classes-en-python\">la cr\u00e9ation et l&rsquo;utilisation des classes en Python<\/a> ainsi que des conseils sur <a href=\"https:\/\/wikiform.fr\/codespace\/utiliser-pip-freeze-en-python-guide\">l&rsquo;utilisation de pip freeze en Python<\/a>. Pour ceux qui veulent approfondir leur connaissance sur Tkinter, notre tutoriel sur <a href=\"https:\/\/wikiform.fr\/codespace\/afficher-des-messages-avec-tkinter\">l&rsquo;affichage de messages avec Tkinter<\/a> pourra \u00e9galement \u00eatre tr\u00e8s utile.<\/p>\n\n\n\n<a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/wikiform.fr\/codespace\/wp-content\/uploads\/2024\/07\/learnify-formation-PYTHON-offre-50.gif\" loading=\"lazy\" alt=\"Learnify Formation Python Offre 50%\" title=\"\"><\/a>\n","protected":false},"excerpt":{"rendered":"<p>Utiliser le Widget Label avec Tkinter est une comp\u00e9tence fondamentale pour cr\u00e9er des interfaces utilisateur en Python. Ce tutoriel vous guidera \u00e0 travers les concepts&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2975,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-tutoriels"],"acf":[],"_titre_de_la_formation":null,"_description_":null,"_objectifs_pedagogiques":null,"_programme_":null,"_url_de_limage":null,"_materiel_necessaire":null,"_modalites_devaluation_des_acquis":null,"_moyens_pedagogiques_et_techniques":null,"_accessibilite_":null,"_formateur_":null,"menu_order":0,"_links":{"self":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/comments?post=5797"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5797\/revisions"}],"predecessor-version":[{"id":5798,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5797\/revisions\/5798"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2975"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}