<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tkinter Archive - programmieren-starten.de</title>
	<atom:link href="https://www.programmieren-starten.de/blog/category/tkinter/feed/" rel="self" type="application/rss+xml" />
	<link>https://programmieren-starten.de/blog/category/tkinter/</link>
	<description>Lerne ohne Vorkenntnisse Schritt-für-Schritt das Programmieren.</description>
	<lastBuildDate>Tue, 17 Sep 2024 15:23:05 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.programmieren-starten.de/wp-content/uploads/2020/12/cropped-Favicon_512x512.png</url>
	<title>Tkinter Archive - programmieren-starten.de</title>
	<link>https://programmieren-starten.de/blog/category/tkinter/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Python Tkinter Tutorial #10 – Das Tkinter Entry Widget</title>
		<link>https://www.programmieren-starten.de/blog/tkinter-entry/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Tue, 17 Sep 2024 13:29:59 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=29805</guid>

					<description><![CDATA[<p>In diesem Beitrag möchte ich dir das Tkinter Entry Widget vorstellen, welches in der Praxis neben dem Label- und dem Button-Widget ebenfalls häufig verwendet wird. Mithilfe des Entry Widgets können wir dem Nutzer nämlich ermöglichen, etwas über die grafische Benutzeroberfläche einzugeben. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Ein Tkinter Entry Widget erzeugen2. Die Option width3. Die Option foreground4. [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-entry/">Python Tkinter Tutorial #10 – Das Tkinter Entry Widget</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>In diesem Beitrag möchte ich dir das Tkinter <strong>Entry Widget</strong> vorstellen, welches in der Praxis neben dem Label- und dem Button-Widget ebenfalls häufig verwendet wird. Mithilfe des Entry Widgets können wir dem <strong>Nutzer</strong> nämlich <strong>ermöglichen</strong>, etwas über die grafische <strong>Benutzeroberfläche einzugeben</strong>.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=s9rBWJhMPBg" data-no-cookie="1" style="" data-css="tve-u-66daaeae8866a7" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Responsive Video" class="tcb-responsive-video" data-code="s9rBWJhMPBg" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-src="https://www.youtube-nocookie.com/embed/s9rBWJhMPBg?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-66daaeae886718" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-66daaeae886739">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Ein Tkinter Entry Widget erzeugen</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Die Option width</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Die Option foreground</a></div><div class="tve_ct_level1"><a href="#t-1715931821104" rel="nofollow">4. Die Option background</a></div><div class="tve_ct_level1"><a href="#t-1715931821105" rel="nofollow">5. Die Option justify im Tkinter Entry Widget</a></div><div class="tve_ct_level1"><a href="#t-1715931821106" rel="nofollow">6. Die Nutzereingabe des Tkinter Entry Widgets verarbeiten</a></div><div class="tve_ct_level2"><a href="#t-1725608766550" rel="nofollow">Eine Funktion für die Ausgabe des Inhalts erstellen</a></div><div class="tve_ct_level2"><a href="#t-1725608766551" rel="nofollow">Eine Funktion an den Buttonklick koppeln</a></div><div class="tve_ct_level2"><a href="#t-1725608766552" rel="nofollow">Ein Label anstelle der Konsolenausgabe erzeugen</a></div><div class="tve_ct_level1"><a href="#t-1715931821107" rel="nofollow">7. Die insert-Methode</a></div><div class="tve_ct_level1"><a href="#t-1717163257968" rel="nofollow">8. Die delete-Methode</a></div><div class="tve_ct_level1"><a href="#t-1717163257969" rel="nofollow">9. Abschließende Worte</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae886747" id="tab-con-10">1. Ein Tkinter Entry Widget erzeugen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Um ein Tkinter Entry Widget zu erzeugen, definieren wir zunächst eine <strong>Variable</strong>, die wir beispielhaft <em>entry1</em> nennen. Anschließend weisen wir dieser <strong>ttk.Entry</strong> zu und geben wieder <em>root</em> als Parent an. Damit das Ganze sichtbar ist, packen wir es mithilfe der pack-Methode in die GUI:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c660219d"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29810" alt="für das Tkinter entry Widget definieren wir eine Variable und weisen ttk.entry zu" data-id="29810" width="740" data-init-width="1502" height="253" data-init-height="514" title="tkinter-entry-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-1.png" data-width="740" data-height="253" style="aspect-ratio: auto 1502 / 514;" data-pagespeed-url-hash="1588295200" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-1.png 1502w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-1-300x103.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-1-1024x350.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-1-768x263.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Um zudem direkt die verfügbaren <strong>Optionen</strong> für dieses Widget <strong>sehen</strong> zu können, greifen wir wieder auf unseren kleinen Trick mit der for-Schleife zurück. Wir schreiben also Folgendes:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">entry1.pack()</span></span></p><p><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;">&nbsp;</span></span><span style="color: rgb(255, 113, 44) !important;"><span style="--tcb-applied-color: rgb(255, 113, 44) !important;"><strong class="">for</strong></span></span><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong class=""> item </strong></span></span><span style="color: rgb(255, 113, 44) !important;"><span style="--tcb-applied-color: rgb(255, 113, 44) !important;"><strong class="">in</strong></span></span><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong class=""> entry1.keys():</strong></span></span><br><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>&nbsp; &nbsp; &nbsp; &nbsp;</strong><strong>print(item, ": ", entry1[item])</strong></span></span></p><p data-css="tve-u-191c682e37a"><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">&nbsp;root.mainloop()</span></span></p><p data-css="tve-u-66daaeae8867c2"><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>An dieser Stelle führen wir das Programm einfach direkt mal aus:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c6883d7c"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29812" alt="In der GUI befindet sich nun ein Eingabefeld" data-id="29812" width="740" data-init-width="1554" height="216" data-init-height="454" title="tkinter-entry-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-2.png" data-width="740" data-height="216" style="aspect-ratio: auto 1554 / 454;" data-pagespeed-url-hash="1882795121" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-2.png 1554w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-2-300x88.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-2-1024x299.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-2-768x224.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-2-1536x449.png 1536w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wie du sehen kannst, befindet sich jetzt in der GUI ein <strong>Eingabefeld</strong>, in welches wir klicken und einen <strong>beliebigen Text eingeben</strong> können.</p><p>Wenn wir jetzt einen Blick auf die <strong>Konsole</strong> werfen, sehen wir zudem alle <strong>verfügbaren</strong> <strong>Optionen</strong> für dieses Widget, da wir uns diese schließlich über die for-Schleife ausgeben lassen.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae886747" id="t-1688547294220">2. Die Option width</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Unter anderem befindet sich in der Auflistung die Option <em><strong>width</strong></em>, welche standardmäßig aktuell auf den Wert 20 gesetzt ist.&nbsp;</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c6f020c6"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29814" alt="Die Option width, die auch für das Tkinter Entry Widget bereitsteht, ist standardmäßig auf den Wert 20 gesetzt" data-id="29814" width="740" data-init-width="1824" height="153" data-init-height="378" title="tkinter-entry-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-3.png" data-width="740" data-height="153" style="aspect-ratio: auto 1824 / 378;" data-pagespeed-url-hash="2177295042" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-3.png 1824w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-3-300x62.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-3-1024x212.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-3-768x159.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-3-1536x318.png 1536w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element"><p>Damit können wir die <strong>Breite des Eingabefeldes</strong> festlegen. Der aktuelle Wert ist, wie bereits erwähnt, auf 20 gesetzt, was der Länge entspricht, die wir momentan in der GUI sehen.&nbsp;</p><p>Um das Ganze zu verdeutlichen, erhöhen wir den Wert zu Beginn direkt auf das Doppelte, also auf 40. Dazu ändern wir die Option <strong>width</strong> auf den Wert <strong>40</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span data-css="tve-u-191c7a5c372"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-191c7a5c381">root.geometry("400x400")</span></span></p><p data-css="tve-u-191c6f1b454"><span data-css="tve-u-191c7a5c382"><span data-css="tve-u-191c7a5c384" style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">entry1 = ttk.Entry(root, </span></span><span data-css="tve-u-191c7a5c385"><span data-css="tve-u-191c7a5c386"><strong class=""><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">width=40</span></strong></span></span><span data-css="tve-u-191c7a5c387"><span data-css="tve-u-191c7a5c388" style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">)</span></span><br><span data-css="tve-u-191c7a5c389" style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm erneut ausführen, wird das Eingabefeld doppelt so breit dargestellt:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c6fa3bcb"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29816" alt="Das Eingabefeld ist jetzt doppelt so breit" data-id="29816" width="740" data-init-width="1208" height="168" data-init-height="274" title="tkinter-entry-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-4.png" data-width="740" data-height="168" style="aspect-ratio: auto 1208 / 274;" data-pagespeed-url-hash="2471794963" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-4.png 1208w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-4-300x68.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-4-1024x232.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-4-768x174.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Geben wir in das Eingabefeld viel Text ein und erreichen damit das <strong>Ende des Feldes</strong>, erkennen wir, dass wir auch dann <strong>noch weiter schreiben</strong> können.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c78fddca"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29818" alt="Wir können über das Ende des Tkinter Entry Widgets hinaus schreiben" data-id="29818" width="740" data-init-width="1188" height="174" data-init-height="280" title="tkinter-entry-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-5.png" data-width="740" data-height="174" style="aspect-ratio: auto 1188 / 280;" data-pagespeed-url-hash="2766294884" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-5.png 1188w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-5-300x71.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-5-1024x241.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-5-768x181.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Im Feld scrollt das Programm automatisch weiter, wodurch wir <strong>nicht</strong> auf eine gewisse <strong>Anzahl von Zeichen limitiert</strong> sind. Wenn wir uns nun noch die weiteren Optionen ansehen, dann tauchen unter anderem <em>foreground</em> und <em>background</em> auf:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c79319b8"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29820" alt="Auch foreground und background gehören zu den Optionen des Tkinter Entry Widgets" data-id="29820" width="740" data-init-width="1930" height="130" data-init-height="338" title="tkinter-entry-6" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-6.png" data-width="740" data-height="130" style="aspect-ratio: auto 1930 / 338;" data-pagespeed-url-hash="3060794805" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-6.png 1930w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-6-300x53.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-6-1024x179.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-6-768x134.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-6-1536x269.png 1536w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Damit können wir jeweils die<strong> Schrift- und Hintergrundfarbe</strong> verändern.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae8867f7" id="t-1689865778143">3. Die Option foreground</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Beginnen wir einfach mal mit der Schriftfarbe und ändern diese im Code auf den Wert <strong>rot</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">entry1 = ttk.Entry(root, width=40, </span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;"><strong class="">foreground="red"</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><strong class="">)</strong></span><br><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">entry1.pack()</span></span><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Nachdem wir das Programm ausgeführt haben und etwas in das Feld eintippen, wird die Schrift tatsächlich in Rot dargestellt:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c7a31384"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29823" alt="Die Schriftfarbe ist nun rot" data-id="29823" width="740" data-init-width="1242" height="187" data-init-height="314" title="tkinter-entry-7" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-7.png" data-width="740" data-height="187" style="aspect-ratio: auto 1242 / 314;" data-pagespeed-url-hash="3355294726" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-7.png 1242w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-7-300x76.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-7-1024x259.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-7-768x194.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das funktioniert also schon mal einwandfrei. Für die Hintergrundfarbe können wir jetzt noch die Option <em>background</em> setzen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae8867f7" id="t-1715931821104">4. Die Option background</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Dafür wählen wir beispielsweise die Farbe <strong>S</strong><strong>chwarz</strong>, da rot und schwarz ganz gut zusammenpassen könnten. Wir setzen also background auf den Wert „black“:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p data-css="tve-u-191c7a4fedd"><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">entry1 = ttk.Entry(root, width=40, foreground="red",</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;"> <strong class="">background="black"</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><strong class="">)</strong></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Anschließend führen wir das Programm aus und bereits beim Schreiben in das Eingabefeld entdecken wir ein Problem: Die <strong>Hintergrundfarbe</strong> ist nach wie vor weiß und wurde damit <strong>nicht gesetzt:</strong></p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c7b87ff9"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29827" alt="Die Hintergrundfarbe schwarz des Tkinter Entry Widgets wurde nicht gesetzt" data-id="29827" width="740" data-init-width="1208" height="153" data-init-height="250" title="tkinter-entry-8" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-8.png" data-width="740" data-height="153" style="aspect-ratio: auto 1208 / 250;" data-pagespeed-url-hash="3649794647" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-8.png 1208w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-8-300x62.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-8-1024x212.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-8-768x159.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das hat den gleichen Grund wie im <strong>Beitrag zum Label Widget </strong>bereits beschrieben. Manche Optionen können mit bestimmten Themes und auch generell auf spezifischen <strong>Plattformen</strong> wie etwa Mac OS schlichtweg <strong>nicht gesetzt werden.</strong></p><p>Deshalb löschen wir die Schlüsselwortargumente, die wir eben gesetzt haben, um die Farben zu ändern, einfach noch mal weg:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">entry1 = ttk.Entry(root, width=40, </span><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;"><s class="">foreground="red", background="black"</s></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae8867f7" id="t-1715931821105">5. Die Option justify im Tkinter Entry Widget</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir erneut einen Blick auf die Konsolenausgabe werfen, können wir auch eine Option mit dem Namen&nbsp;<strong><em>justify</em></strong> sehen. Außerdem fällt auf, dass diese Option standardmäßig auf den Wert <strong>left</strong>, also links gesetzt ist.</p><p>Das bedeutet, beim Eingeben von Text in das Eingabefeld wird dieser automatisch <strong>linksbündig</strong> ausgerichtet. Führen wir das Ganze noch einmal aus und geben etwas Text ein, startet dieser von links:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c7c1d859"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29829" alt="Der Text ist linksbündig ausgerichtet" data-id="29829" width="740" data-init-width="1330" height="161" data-init-height="290" title="tkinter-entry-9" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-9.png" data-width="740" data-height="161" style="aspect-ratio: auto 1330 / 290;" data-pagespeed-url-hash="3944294568" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-9.png 1330w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-9-300x65.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-9-1024x223.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-9-768x167.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element"><p>Die&nbsp;<strong>Ausrichtung</strong> lässt sich aber auch über die Option <em>justify</em>
<strong>ändern</strong>. Dazu bewegen wir uns in den Code, geben <em>justify</em> an und setzen die Option beispielsweise auf rechts:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-191c7c2f6b9">entry1 = ttk.Entry(root, width=40,</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;" data-css="tve-u-191c7c2f6be"> <strong class="">justify="right"</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-191c7c2f6cd"><strong class="">)</strong></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-191c7c2f6ce">entry1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Nachdem wir das Programm wieder ausgeführt und etwas Text eingegeben haben, ist dieser nun <strong>rechtsbündig</strong>:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c7c3fd25"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29831" alt="Der Text wird nun rechts im Eingabefeld ausgerichtet" data-id="29831" width="740" data-init-width="1288" height="125" data-init-height="218" title="tkinter-entry-10" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-10.png" data-width="740" data-height="125" style="aspect-ratio: auto 1288 / 218;" data-pagespeed-url-hash="2348902170" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-10.png 1288w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-10-300x51.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-10-1024x173.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-10-768x130.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Genauso könnten wir&nbsp;<em>justify</em> auch auf den Wert <em>center</em> setzen, um den Text mittig zu zentrieren:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">entry1 = ttk.Entry(root, width=40, </span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;"><strong class="">justify="center"</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><strong class="">)</strong></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span></p></div></div>
</div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191c7d6e4b4"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29833" alt="Mit center ist der Text zentriert" data-id="29833" width="740" data-init-width="1248" height="130" data-init-height="220" title="tkinter-entry-11" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-11.png" data-width="740" data-height="130" style="aspect-ratio: auto 1248 / 220;" data-pagespeed-url-hash="2643402091" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-11.png 1248w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-11-300x53.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-11-1024x181.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-11-768x135.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das ist also die Option <strong>justify</strong>. Bevor wir fortfahren, setzen wir <em>justify</em> allerdings wieder auf den <strong>Default-Wert</strong> linksbündig. Dafür löschen wir die Option, die wir gerade manuell gesetzt haben, einfach aus dem Code:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;" data-css="tve-u-191c7d82e65">entry1 = ttk.Entry(root, width=40</span><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;" data-css="tve-u-191c7d82e6a"><s class="">, justify="center"</s></span><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;" data-css="tve-u-191c7d82e79">)</span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-191c7d82e7a">entry1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae8867f7" id="t-1715931821106">6. Die Nutzereingabe des Tkinter Entry Widgets verarbeiten</h2></div><div class="thrv_wrapper thrv_text_element"><p>Bisher haben wir schon einige Modifizierungsmöglichkeiten gesehen. Die Frage ist nun aber, wie wir mit dem eingegebenen <strong>Text</strong>
<strong>weiterarbeiten</strong> können, denn schließlich soll die Eingabe des Nutzers verwertet werden.</p><p>Das funktioniert ziemlich einfach, da wir auf den aktuellen <strong>Inhalt</strong> des Eingabefeldes <strong>zugreifen</strong> können, indem wir die <strong>get-Methode</strong> auf dem Entry-Objekt aufrufen. Das setzen wir jetzt mal an einem kleinen Beispiel um.</p><p>Wir erzeugen uns dafür einen zusätzlichen <strong>Button</strong> und packen diesen dann mithilfe der <strong>pack-Methode</strong> in die GUI, was wir im Code folgendermaßen umsetzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p data-css="tve-u-191c7e420dc"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span></p><p><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>button1 = ttk.Button(root, text="Eingabe ausgeben!")</strong></span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">button1.pack()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jedes Mal, wenn wir diesen Button dann klicken, soll der Inhalt, der aktuell im Eingabefeld steht, auf der Konsole ausgegeben werden.</p></div><div class="thrv_wrapper thrv_text_element"><h3 class="" id="t-1725608766550"><strong>Eine Funktion für die Ausgabe des Inhalts erstellen</strong></h3></div><div class="thrv_wrapper thrv_text_element"><p>Wir definieren uns also eine Funktion und nennen diese beispielhaft <em>print_entry_input</em>. Wie bereits erwähnt, erhalten wir den <strong>Inhalt</strong> über die <strong>get-Methode</strong>. Das heißt, wir schreiben <em>print</em> und rufen auf <strong>entry1</strong> die get-Methode auf:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191c7e52ff5"><span style="color: rgb(255, 113, 44) !important;"><span style="--tcb-applied-color: rgb(255, 113, 44) !important;"><strong class="">def</strong></span></span><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong class=""> print_entry_input():</strong></span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">&nbsp; &nbsp; &nbsp; &nbsp; print(entry1.get())</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt müssen wir die Funktion nur noch dem <strong>Button zuweisen</strong>, damit diese aufgerufen wird, sobald wir auf den Button klicken.</p></div><div class="thrv_wrapper thrv_text_element"><h3 id="t-1725608766551" class=""><strong>Eine Funktion an den Buttonklick koppeln</strong></h3></div><div class="thrv_wrapper thrv_text_element">	<p>Das funktioniert über die Option <em>command</em>, indem wir Folgendes im Code schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;" class="">button1 = ttk.Button(root, text="Eingabe ausgeben!",</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;" class=""> <strong class="">command=print_entry_input</strong></span><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;" class="">)</span><p style="" data-css="tve-u-191c7e69b84"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>An dieser Stelle führen wir das Programm einfach mal aus. Dadurch sehen wir in der GUI das Eingabefeld und darüber hinaus einen <strong>neuen Button</strong> mit der Aufschrift „Eingabe ausgeben!“. Wenn ich nun einen Text wie beispielsweise meinen Namen eingebe und auf den <strong>Button klicke</strong>, gibt das Programm diesen Text auf der Konsole aus:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d5b4f4b9"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29838" alt="Wenn ich in das Tkinter Entry Widget meinen Namen eingebe und auf den Button klicke, wird der Name auf der Konsole ausgegeben" data-id="29838" width="740" data-init-width="1438" height="167" data-init-height="324" title="tkinter-entry-12" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-12.png" data-width="740" data-height="167" style="aspect-ratio: auto 1438 / 324;" data-pagespeed-url-hash="2937902012" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-12.png 1438w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-12-300x68.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-12-1024x231.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-12-768x173.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d5c268d3"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29840" alt="In der Konsole sehen wir den Namen &quot;Hendrik&quot;" data-id="29840" width="740" data-init-width="1928" height="136" data-init-height="354" title="tkinter-entry-13" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-13.png" data-width="740" data-height="136" style="aspect-ratio: auto 1928 / 354;" data-pagespeed-url-hash="3232401933" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-13.png 1928w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-13-300x55.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-13-1024x188.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-13-768x141.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-13-1536x282.png 1536w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wir können den Text auch erweitern zu „Hendrik ist mein Name!“ und den Button erneut klicken. Auch dieser Inhalt wird auf der Konsole ausgegeben.</p></div><div class="thrv_wrapper thrv_text_element"><h3 id="t-1725608766552" class=""><strong>Ein Label anstelle der Konsolenausgabe erzeugen</strong></h3></div><div class="thrv_wrapper thrv_text_element">	<p>Anstatt das Ganze auf der Konsole anzeigen zu lassen, könnten wir auch bei jedem Funktionsaufruf ein neues <strong>Label-Objekt erzeugen,</strong> welches wir dann direkt in die GUI packen. Dort weisen wir dann als Text den <strong>aktuellen Inhalt</strong> des <strong>Eingabefeldes</strong> zu.</p><p>Hierfür müssen wir lediglich den Inhalt der Funktion <em>print_entry_input</em> verändern und festlegen, dass ein ttk-Label erzeugt werden soll. Wir platzieren es beim Parent <em>root</em> und als Text weisen wir <em>entry1.get()</em> zu. Anschließend platzieren wir das Ganze mithilfe der pack-Methode in der GUI, damit wir es direkt sehen können:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191d5dd468c"><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">def print_entry_input():</span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">&nbsp; &nbsp; &nbsp; &nbsp; ttk.Label(root, text=entry1.get()).pack()</span></strong></p><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;" class=""></span></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Um den Code direkt auszuprobieren, geben wir einen Text wie beispielsweise meinen Namen „Hendrik“ ein, klicken auf den Button und sehen dann, dass der <strong>Text</strong> aus dem Eingabefeld in <strong>Form eines</strong>
<strong>Labels</strong> in der GUI platziert wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d5e36b1d"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29846" alt="Der Text wird nun als Label auf der GUI platziert" data-id="29846" width="740" data-init-width="2206" height="138" data-init-height="412" title="tkinter-entry-14" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-14.png" data-width="740" data-height="138" style="aspect-ratio: auto 2206 / 412;" data-pagespeed-url-hash="3526901854" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-14.png 2206w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-14-300x56.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-14-1024x191.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-14-768x143.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-14-1536x287.png 1536w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-14-2048x382.png 2048w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das Ganze funktioniert also einwandfrei.</p><p>Damit weißt du jetzt, wie du an den Text gelangen kannst, der sich aktuell im Eingabefeld befindet. Es gibt nun allerdings <strong>zwei</strong><strong> weitere sehr nützliche Methoden</strong>, die ich dir ebenfalls noch vorstellen möchte.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae8867f7" id="t-1715931821107">7. Die insert-Methode</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Dazu gehört zum einen die Methode <em><strong>insert</strong></em>. Mithilfe dieser können wir über unseren Code etwas in das <strong>Eingabefeld schreiben</strong>. Wenn wir also unter dem Aufruf der pack-Methode auf dem Tkinter <strong>Entry</strong>
<strong>Objekt</strong> die insert-Methode aufrufen, indem wir beispielsweise <em>entry1.insert </em>angeben, haben wir die Möglichkeit, zwei Argumente zu übergeben.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span></p><p><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">entry1.insert()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Zuerst schreiben wir 0, wobei es sich um den <strong>Index</strong> handelt, den ich gleich noch genauer erklären werde. Als zweites Argument übergeben wir den <strong>String</strong>, der in das <strong>Eingabefeld</strong> geschrieben werden soll. Dafür wählen wir beispielsweise den Satz „Hier kannst du schreiben!“:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">&nbsp;</span><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">entry1.pack()</span></span></p><p data-css="tve-u-191d60de691"><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">entry1.insert(</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;"><strong class="">0, "Hier kannst du schreiben!"</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, sehen wir bereits direkt zu Beginn im Eingabefeld auf der GUI den String „Hier kannst du schreiben!“.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d5ed1cb0"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29850" alt="Im Tkinter Entry Widget wird jetzt schon zu Beginn der String &quot;Hier kannst du schreiben&quot; angezeigt" data-id="29850" width="740" data-init-width="1332" height="135" data-init-height="244" title="tkinter-entry-15" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-15.png" data-width="740" data-height="135" style="aspect-ratio: auto 1332 / 244;" data-pagespeed-url-hash="3821401775" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-15.png 1332w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-15-300x55.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-15-1024x188.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-15-768x141.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element"><p>Der Text, der nun im Eingabefeld steht, kann vom Nutzer aber weiterhin beliebig <strong>verändert</strong> werden.&nbsp;</p><blockquote class="">Das heißt, wir könnten in das Feld klicken und sowohl etwas vom <strong>Text entfernen</strong> als auch <strong>etwas dazuschreiben</strong>. Die Funktionalität ist nach wie vor gegeben.</blockquote><p>Was hat es aber nun mit dem Index auf sich, den wir innerhalb der insert-Methode zu Beginn als erstes Argument übergeben haben?</p><p>Mit diesem legen wir fest, <strong>an welcher Stelle</strong> wir beim bestehenden Text im Eingabefeld den <strong>String</strong>
<strong>einfügen</strong> möchten, der als zweites Argument folgt.</p><p>Angenommen, wir rufen eine Zeile unterhalb des Methodenaufrufs noch einmal die <strong>insert-Methode</strong> auf, geben diesmal den <strong>Index 2</strong> an und an der Stelle mit dem Index 2 möchten wir den String „TEST“ in Großbuchstaben einfügen.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.insert(0, "Hier kannst du schreiben!")</span></p><p data-css="tve-u-191d5f04d21"><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">entry1.insert(2, "TEST")</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt führen wir das Programm noch aus und überprüfen, was passiert:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d5f13219"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29852" alt="Der String &quot;Test&quot; wird bei Index 2 eingefügt" data-id="29852" width="740" data-init-width="1334" height="129" data-init-height="232" title="tkinter-entry-16" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-16.png" data-width="740" data-height="129" style="aspect-ratio: auto 1334 / 232;" data-pagespeed-url-hash="4115901696" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-16.png 1334w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-16-300x52.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-16-1024x178.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-16-768x134.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Was geschieht, ist nun folgendes: Zunächst wird mit dem ersten Aufruf der insert-Methode der <strong>Text</strong> „Hier kannst du schreiben!“ in das <strong>Eingabefeld geschrieben</strong>.</p><p>Daraufhin rufen wir erneut die insert-Methode auf und geben an, dass wir <strong>bei Index 2</strong> noch den String <strong>„TEST“ einfügen</strong> möchten. Folglich wird dieser bei Index 2, also nach dem zweiten Zeichen des Strings, der bereits im Eingabefeld steht, eingefügt. In diesem Fall mitten im Wort „hier“.</p><p>Das macht an dieser Stelle zwar keinen Sinn, aber schließlich sollte dir das Beispiel nur <strong>demonstrieren</strong>, welchen <strong>Zweck</strong> der Index innerhalb der <strong>insert-Methode </strong>erfüllt.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae8867f7" id="t-1717163257968">8. Die delete-Methode</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Neben der get- und der insert-Methode existiert noch die Methode <strong>delete</strong>, welche sich in manchen Fällen als nützlich erweist. Damit wir uns diese genauer ansehen können, löschen wir zunächst einmal den gesamten Code bis auf das Tkinter entry-Widget und den Button. Wir <strong>löschen</strong> im Programm also die folgenden <strong>rot markierten</strong> Zeilen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span></p><p><span style="color: rgb(255, 0, 0) !important;"><span style="--tcb-applied-color: rgb(255, 0, 0) !important;">entry1.insert(0, "Hier kannst du schreiben!")<br></span></span><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">entry1.insert(2, "TEST")</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Auch die Funktion löschen wir erst mal:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191d5f49622"><span style="color: rgb(255, 0, 0) !important;"><span style="--tcb-applied-color: rgb(255, 0, 0) !important;">def print_entry_input():</span></span><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;"><br>&nbsp; &nbsp; &nbsp; &nbsp; ttk.Label(root, text=entry1.get()).pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt programmieren wir eine <strong>neue Funktion</strong>, die wir <em>delete_input()</em> nennen.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191d5f536ae"><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">def delete_input():</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Innerhalb dieser Funktion führen wir auf dem entry-Objekt die delete-Methode aus und schreiben dazu <strong>entry1.delete</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191d5f68ef8"><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">def delete_input():</span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">&nbsp; &nbsp; &nbsp; &nbsp; entry1.delete()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><p>Diese delete-Methode erwartet jetzt <strong>zwei Argumente</strong>.</p><blockquote class="">Mit dem ersten Argument geben wir den <strong>Index</strong> an, ab dem der Text innerhalb des Eingabefeldes <strong>gelöscht</strong> werden soll. Hierfür wählen wir beispielhaft den Index 0. Mit dem zweiten Index geben wir den <strong>Endindex</strong> an, bis zu welchem gelöscht werden soll.&nbsp;</blockquote><p>Da wir möchten, dass der <strong>gesamte Inhalt</strong> des Eingabefeldes <strong>gelöscht</strong> wird, wählen wir als Start-Index wie gerade erwähnt 0 und als Endindex <strong>tk.END</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191d5f68ef8"><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">def delete_input():</span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">&nbsp; &nbsp; &nbsp; &nbsp; </span></strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">entry1.delete(</span><strong><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;"><b class=""><span lang="EN-US">0, tk.END</span></b></span></strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Mit <strong>tk.END</strong> teilen wir dem Programm mit, dass wir den <strong>letztmöglichen Index</strong> angeben möchten. Als <strong>command</strong> für den Button weisen wir nun diese <strong>neue Funktion</strong> zu. Die Funktion <em>print_entry_input</em> gibt es nicht mehr, weshalb wir diese aus den Klammern löschen und durch die neue Funktion ersetzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">entry1.pack()</span></p><p><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;">button1 = ttk.Button(root, text="Eingabe ausgeben!", command=</span><span class="fr-marker" data-id="0" data-type="true" style="display: none; line-height: 0;"></span></span><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">delete_input<span class="fr-marker" data-id="0" data-type="false" style="display: none; line-height: 0;"></span></strong></span></span><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;">)</span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Da sich die Funktionalität des Buttons jetzt geändert hat, sollten wir auch dessen Text verändern, um Verwirrungen auszuschließen. Wir löschen also „Eingabe ausgeben!“ und schreiben stattdessen „<strong>Input löschen!</strong>“.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-191d60ecc0c">entry1.pack()</span></p><p data-css="tve-u-191d60ff1a4"><span style="color: var(--tcb-color-1) !important;" data-css="tve-u-191d60ecc11"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;" data-css="tve-u-191d60ecc21">button1 = ttk.Button(root, text="</span></span><span data-css="tve-u-191d60ecc11" style="color: var(--tcb-color-2) !important;"><span data-css="tve-u-191d60ecc21" style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">Input löschen!</strong></span></span><span data-css="tve-u-191d60ecc11" style="color: var(--tcb-color-1) !important;"><span data-css="tve-u-191d60ecc21" style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">"</strong>, command=delete_input)</span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-191d60ecc23">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Nachdem wir das Programm anschließend ausgeführt haben, tippen wir testweise ein paar Buchstaben in das Eingabefeld:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d61ac5b0"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29859" alt="Wir tippen testweise Buchstaben in das Tkinter Entry Widget Eingabefeld" data-id="29859" width="740" data-init-width="1320" height="141" data-init-height="252" title="tkinter-entry-17" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-17.png" data-width="740" data-height="141" style="aspect-ratio: auto 1320 / 252;" data-pagespeed-url-hash="115434321" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-17.png 1320w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-17-300x57.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-17-1024x195.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-17-768x147.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir daraufhin auf den Button klicken, sehen wir, dass <strong>alles gelöscht </strong>wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d61e7be4"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29861" alt="Durch den Buttonklick wird der Inhalt gelöscht" data-id="29861" width="740" data-init-width="1212" height="135" data-init-height="222" title="tkinter-entry-18" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-18.png" data-width="740" data-height="135" style="aspect-ratio: auto 1212 / 222;" data-pagespeed-url-hash="409934242" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-18.png 1212w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-18-300x55.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-18-1024x188.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-18-768x141.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Geben wir danach wieder etwas ein und klicken auf den Button, löscht das Programm erneut den gesamten Inhalt des Eingabefeldes.</p><p>Wenn wir in den Klammern der delete-Methode nicht tk.END angegeben hätten, sondern beispielsweise einen <strong>spezifischen Endindex</strong> wie etwa <strong>5</strong>, würde die Methode nur die ersten fünf Zeichen des Textes löschen, der sich im Eingabefeld befindet.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66daaeae886763" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66daaeae886777">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191d620e32a"><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">def delete_input():</span></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"><br></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">&nbsp; &nbsp; &nbsp; &nbsp; entry1.delete(0,<strong class="">&nbsp;</strong></span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;"><strong class="">5</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Probieren wir auch das einmal aus und öffnen das Programm. In das Eingabefeld geben wir nun beispielhaft „Hallo, das ist ein Test“ ein, klicken anschließend auf „Input löschen!“ und sehen dann, dass die <strong>ersten fünf Zeichen </strong>und damit das Wort „Hallo“ <strong>gelöscht</strong> wurden:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191d621bb16"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29863" alt="Die ersten fünf Zeichen wurden aus dem Eingabefeld gelöscht" data-id="29863" width="740" data-init-width="1236" height="129" data-init-height="216" title="tkinter-entry-19" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-19.png" data-width="740" data-height="129" style="aspect-ratio: auto 1236 / 216;" data-pagespeed-url-hash="704434163" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-19.png 1236w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-19-300x52.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-19-1024x179.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-entry-19-768x134.png 768w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Danach folgen ein noch vorhandenes Leerzeichen und der restliche Text. Klicken wir jetzt erneut auf „Input löschen!“, werden wieder die <strong>ersten fünf Zeichen</strong> vom <strong>bestehenden String</strong> gelöscht. So ließe sich das dann fortführen, bis zu dem Punkt, an dem nichts mehr im Eingabefeld stehen würde.</p><p>Damit bist du nun mit dem nötigen Wissen ausgestattet, um auch das Tkinter <strong>Entry Widget </strong>innerhalb deiner Programme sinnvoll nutzen zu können.&nbsp;</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66daaeae8867f7" id="t-1717163257969">9. Abschließende Worte</h2></div><div class="thrv_wrapper thrv_text_element"><p>Mit den Fähigkeiten, die du in dieser Tutorial-Reihe erworben hast, kannst du nun deine ersten einfachen Anwendungen mit grafischen Benutzeroberflächen in Python erstellen.</p><p>Ein Beispiel wäre ein <strong>Bitcoin-Preisrechner</strong>: Eine Anwendung, die die Anzahl der Bitcoins, die der Nutzer eingibt, aufnimmt und berechnet, wie viel diese zum aktuellen Kurs wert sind.</p><p>Das ist beispielsweise eines von mehreren Projekten, die wir gemeinsam im <a href="https://programmieren-starten.de/tkinter-lp1/" target="_blank" class="" style="outline: currentcolor;"><strong>Tkinter-Masterkurs</strong></a><strong>&nbsp;</strong>umsetzen werden.</p><p>Im Tkinter Masterkurs wirst du darüber hinaus noch wesentlich <strong>mehr lernen</strong>. Wir werden uns darin nämlich alle <strong>wichtigen Widgets</strong> ansehen, die in Tkinter existieren. In dieser Tutorial-Reihe hast du drei davon kennengelernt, allerdings gibt es noch einige mehr, die benötigt werden, um komplexere Anwendungen mit Tkinter zu erstellen.</p><p>Zu diesen Widgets zählen unter anderem die folgenden:</p><ul class=""><li>Frame-Widget</li><li>LabelFrame-Widget</li><li>Checkbutton-Widget</li><li>Radiobutton-Widget</li><li>Separator-Widget</li><li>Scrollbar-Widget</li><li>Progressbar-Widget</li><li>Combobox-Widget</li><li class="">Spinbox-Widget</li><li class="">Scale-Widget</li></ul></div><div class="thrv_wrapper thrv_text_element">	<p>Diese werden wir uns alle detailliert im <a href="https://programmieren-starten.de/tkinter-lp1/" target="_blank">Python-Tkinter-Masterkurs</a> ansehen.</p><p>Neben den zahlreichen Widgets werde ich dir aber auch weitere<strong> Layout-Manager </strong>vorstellen, du wirst das <strong>Eventhandling</strong> lernen, wie du deine eigene <strong>GUI stylen</strong> kannst, wie du <strong>objektorientierte GUI-Anwendungen baust</strong> und vieles mehr.</p><p>All dieses Wissen werden wir dann in weiteren <strong>Praxisprojekten</strong> vertiefen, wie beispielsweise einer To-do-Listen-App, einem Nachrichtenverschlüsselungsprogramm und vielem mehr.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-66daaeae886aa1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-66daaeae886ac8"><div class="tcb-flex-row v-2 tcb--cols--2 m-edit tcb-mobile-wrap" data-css="tve-u-66daaeae886ad2" style=""><div class="tcb-flex-col" data-css="tve-u-66daaeae886ae1" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-66daaeae886b03" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-button-widget/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-66daaeae886b16" style=""><div class="tcb-col"></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-entry/">Python Tkinter Tutorial #10 – Das Tkinter Entry Widget</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #9 – Das Tkinter Button Widget</title>
		<link>https://www.programmieren-starten.de/blog/tkinter-button-widget/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Tue, 17 Sep 2024 11:00:55 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=29425</guid>

					<description><![CDATA[<p>Heute wirst du das Tkinter Button Widget kennenlernen, welches man nahezu immer verwendet und deshalb unheimlich nützlich ist. Im bisherigen Verlauf dieser Tutorial-Reihe haben wir uns lediglich das Label-Widget angesehen. Die kommenden Beiträge werden also noch um einiges interessanter. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Ein Tkinter Button Widget erstellen2. Die Position des Buttons festlegen3. Die Schlüsselwortargumente fill [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-button-widget/">Python Tkinter Tutorial #9 – Das Tkinter Button Widget</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Heute wirst du das Tkinter <strong>Button Widget</strong> kennenlernen, welches man nahezu immer verwendet und deshalb unheimlich nützlich ist. Im bisherigen Verlauf dieser Tutorial-Reihe haben wir uns lediglich das Label-Widget angesehen. Die kommenden Beiträge werden also noch um einiges interessanter.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=0hcPk04ZcTE" data-no-cookie="1" style="" data-css="tve-u-19150e25aaa" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #9 - Das ttk Button Widget" class="tcb-responsive-video" data-code="0hcPk04ZcTE" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="966254144" data-src="https://www.youtube-nocookie.com/embed/0hcPk04ZcTE?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-66bc91390a7159" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-66bc91390a7174">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Ein Tkinter Button Widget erstellen</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Die Position des Buttons festlegen</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Die Schlüsselwortargumente fill und expand einsetzen</a></div><div class="tve_ct_level1"><a href="#t-1715931821104" rel="nofollow">4. Mögliche Optionen vom Tkinter Button Widget anzeigen lassen</a></div><div class="tve_ct_level1"><a href="#t-1715931821105" rel="nofollow">5. Die Option padding setzen</a></div><div class="tve_ct_level1"><a href="#t-1726579874144" rel="nofollow">6. Die command-Option</a></div><div class="tve_ct_level1"><a href="#t-1715931821107" rel="nofollow">7. Mit command „auf Knopfdruck“ eine Funktion ausführen</a></div><div class="tve_ct_level1"><a href="#t-1717163257968" rel="nofollow">8. Diesen Fehler muss man vermeiden</a></div><div class="tve_ct_level1"><a href="#t-1717163257969" rel="nofollow">9. Was ein rundes Klammerpaar hinter der Funktion auslöst</a></div><div class="tve_ct_level1"><a href="#t-1717163257970" rel="nofollow">10. Mit einem Tkinter Button Widget die Anwendung beenden</a></div><div class="tve_ct_level1"><a href="#t-1718783367643" rel="nofollow">11. Die destroy-Funktion</a></div><div class="tve_ct_level1"><a href="#t-1718783367644" rel="nofollow">12. Die Option state</a></div><div class="tve_ct_level1"><a href="#t-1723638891455" rel="nofollow">13. Der state DISABLED</a></div><div class="tve_ct_level1"><a href="#t-1723638891456" rel="nofollow">14. Der state NORMAL</a></div><div class="tve_ct_level1"><a href="#t-1723638891457" rel="nofollow">15. Wie man die state-Option in der Praxis einsetzen kann</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7197" id="tab-con-10">1. Ein Tkinter Button Widget erstellen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Um direkt loszulegen, erzeugen wir uns jetzt schon mal ein Tkinter Button Widget innerhalb unserer Entwicklungsumgebung. Dafür definieren wir zunächst eine <strong>Variable</strong>, die wir beispielhaft <em>button1</em> nennen und weisen dann Folgendes zu:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">root.geometry("400x400")</p><p style="color: var(--tcb-skin-color-2) !important; --tcb-applied-color: var$(--tcb-skin-color-2) !important;">&nbsp;<strong>button1 = ttk.Button()</strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">&nbsp;root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Auch hier schreiben wir wieder an erster Stelle zwischen die Klammern „root“ und übergeben als Text beispielsweise „Klick mich!“.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">root.geometry("400x400")</p><p style="" data-css="tve-u-19150f9bfea">&nbsp;<strong>button1 = ttk.Button(<b><span lang="EN-US" style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">root, text="Klick mich!"</span></b>)</strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">&nbsp;root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wie du siehst, ist der <strong>Name der Klasse</strong>, von welcher wir das Objekt erzeugen, „<strong>Button</strong>“. Auch hier geben wir als erstes Argument wieder den Parent root an, bei welchem es sich um unser Hauptfenster handelt. Ein Button kann zudem genau wie ein Label einen <strong>Text</strong> besitzen, weshalb wir die text-Option direkt mithilfe des Strings „Klick mich!“ setzen.</p><p>Mit der pack-Methode können wir diesen Button nun wieder wie gewohnt in der GUI platzieren:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-19150fcc75c"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1 = ttk.Button(root, text="Klick mich!")<br></span><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">button1.pack()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, sehen wir tatsächlich einen Button innerhalb unseres GUI-Fensters, der sich sogar <strong>klicken</strong>
<strong>lässt</strong>:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19151073c6e"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29433" alt="Ein Tkinter Button, auf den man klicken kann" data-id="29433" width="742" data-init-width="1074" height="166" data-init-height="240" title="tkinter-button-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-1.png" data-width="742" data-height="166" style="aspect-ratio: auto 1074 / 240;" data-pagespeed-url-hash="2939133575" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-1.png 1074w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-1-300x67.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-1-1024x229.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-1-768x172.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Natürlich passiert noch nichts, solange wir das noch nicht explizit implementiert haben. Die Klick-Funktion kann sich allerdings schon mal sehen lassen.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7197" id="t-1688547294220">2. Die Position des Buttons festlegen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Auch bei diesem Button können wir der pack-Methode, wie bereits in Artikel 5 dieser Tutorial-Reihe gezeigt, gewisse <strong>Schlüsselwortargumente</strong> übergeben. Wir könnten also beispielsweise wieder festlegen, dass der Button nicht standardmäßig mit side=“top“ platziert werden soll, sondern links oder rechts. Für unser Beispiel wählen wir links:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-1915115975c"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1 = ttk.Button(root, text="Klick mich!")<br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">button1.pack(</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">side="left"</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></strong><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Nachdem wir das Programm so ausgeführt haben, befindet sich der Button nun links:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191511624f7"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29436" alt="Der Tkinter Button ist nun links ausgerichtet" data-id="29436" width="742" data-init-width="1208" height="238" data-init-height="388" title="tkinter-button-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-2.png" data-width="742" data-height="238" style="aspect-ratio: auto 1208 / 388;" data-pagespeed-url-hash="3233633496" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-2.png 1208w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-2-300x96.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-2-1024x329.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-2-768x247.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1689865778143">3. Die Schlüsselwortargumente fill und expand einsetzen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Genauso funktionieren an dieser Stelle und bei allen anderen Widgets, die noch folgen, die Schlüsselwortargumente <strong>fill</strong> und <strong>expand</strong>, welche du ebenfalls im <a href="https://programmieren-starten.de/blog/tkinter-pack/" target="_blank" class="" style="outline: currentcolor;">fünften Teil</a> dieser Tutorial-Reihe kennengelernt hast.</p><p>Wir können jetzt also zum Beispiel anstelle von side=“left“, fill=“x“ angeben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-1915123c671"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1 = ttk.Button(root, text="Klick mich!")<br></span><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">button1.pack(</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">fill="x"</span><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">)</span></strong></p><p data-css="tve-u-66bc91390a7291" style=""><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm so ausführen, sehen wir, dass sich der <strong>Button</strong> nun über den gesamten x-Bereich, also die <strong>x-Achse</strong> erstreckt:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191512490a1"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29439" alt="Der Tkinter Button erstreckt sich nun über die gesamte x-Achse" data-id="29439" width="742" data-init-width="1088" height="166" data-init-height="244" title="tkinter-button-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-3.png" data-width="742" data-height="166" style="aspect-ratio: auto 1088 / 244;" data-pagespeed-url-hash="3528133417" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-3.png 1088w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-3-300x67.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-3-1024x230.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-3-768x172.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Mit <strong>expand=“true“</strong> könnten wir diesen dann wieder anweisen, auch den kompletten möglichen Platz in die <strong>vertikale Richtung </strong>zu allokieren, also nach unten. Das werde ich an dieser Stelle allerdings nicht noch einmal demonstrieren, da wir dieses Thema schließlich bereits im <a href="https://programmieren-starten.de/blog/tkinter-pack/" target="_blank" class="" style="outline: currentcolor;">fünften Beitrag</a> dieser Tutorial-Reihe ausführlich besprochen haben.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1715931821104">4. Mögliche Optionen vom Tkinter Button Widget anzeigen lassen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Vielmehr möchte ich dir jetzt zeigen, welche <strong>Optionen</strong> man bei einem Tkinter <strong>Button</strong>
<strong>Widget</strong> setzen kann.</p><p>Dazu können wir uns wieder mit unserem kleinen Trick behelfen, indem wir folgenden Code schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1 = ttk.Button(root, text="Klick mich!")<br></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>button1.pack()</strong></span></span></p><p><span style="color: rgb(255, 113, 44) !important;"><span style="--tcb-applied-color: rgb(255, 113, 44) !important;"><strong class="">for</strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class=""> item </strong></span></span><span style="color: rgb(255, 113, 44) !important;"><span style="--tcb-applied-color: rgb(255, 113, 44) !important;"><strong class="">in</strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class=""> button1.keys():</strong></span></span><br><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</strong></span></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">print(item, ": ", button1[item])</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm nun ausführen, sehen wir auf der Konsole alle möglichen Optionen. Zwei Optionen, die wieder sofort ins Auge stechen, sobald wir etwas weiterscrollen, sind <strong>image</strong> und <strong>compound</strong>.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19151284784"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29442" alt="Wir sehen die Optionen image und compound" data-id="29442" width="742" data-init-width="2024" height="174" data-init-height="476" title="tkinter-button-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-4.png" data-width="742" data-height="174" style="aspect-ratio: auto 2024 / 476;" data-pagespeed-url-hash="3822633338" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-4.png 2024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-4-300x71.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-4-1024x241.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-4-768x181.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-4-1536x361.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Diese kennen wir bereits vom Label-Widget. Das heißt, wir können in den <strong>Button</strong> neben dem Buttontext auch ein <strong>Bild integrieren</strong> und mit <em>compound</em> wieder festlegen, wie das Bild platziert werden soll.&nbsp;</p><p>Wie das Ganze mit den Optionen <em>image</em> und <em>compound</em> funktioniert, möchte ich an dieser Stelle auch kein weiteres Mal wiederholen, da wir uns das bereits ausführlich im <a href="https://programmieren-starten.de/blog/ttk-label/" target="_blank" class="" style="outline: currentcolor;">7. Beitrag</a> dieser Tutorial-Reihe angesehen haben, in welchem es im Detail um das Label Widget ging.</p><p>Wenn dich das also interessieren sollte, spring gerne noch mal zurück zum 7. Beitrag dieser Reihe, um das Thema anzusehen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1715931821105">5. Die Option padding setzen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Zudem sehen wir beispielsweise, dass wir auch die Option <strong>padding</strong> setzen können. Das probieren wir direkt einmal aus. Hierzu bewegen wir uns in den Code und legen für padding beispielhaft den Wert <strong>10</strong> fest:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">button1 = ttk.Button(root, text="Klick mich!",&nbsp;</span></strong><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;"><strong class="">padding=10</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><strong>)</strong><br></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, sehen wir, dass der Button tatsächlich ein Padding besitzt. Es gibt nun also einen <strong>Abstand</strong> von <strong>10 Pixeln</strong> nach oben, was sich auf der Abbildung sehr gut erkennen lässt:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19151421c51"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29446" alt="Auf der Abbildung erkennt man das Padding über dem Tkinter Button" data-id="29446" width="742" data-init-width="1470" height="160" data-init-height="318" title="tkinter-button-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-5.png" data-width="742" data-height="160" style="aspect-ratio: auto 1470 / 318;" data-pagespeed-url-hash="4117133259" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-5.png 1470w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-5-300x65.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-5-1024x222.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-5-768x166.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das funktioniert also einwandfrei. An dieser Stelle haben wir den Button schon mal etwas modifiziert, da er nun sowohl einen Text als auch ein Padding besitzt.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1726579874144">6. Die command-Option</h2></div><div class="thrv_wrapper thrv_text_element"><p>Sinnvoll wäre jetzt noch, wenn beim <strong>Klicken</strong> auf den Button <strong>etwas</strong>
<strong>passieren</strong> würde.&nbsp;</p><p>Denn aktuell können wir so oft wir möchten auf den Button klicken, ohne dass etwas geschieht. Das ist auch gut so, da wir schließlich noch nicht programmiert haben, was das Programm umsetzen soll. Genau das ändern wir jetzt.&nbsp;</p><p>Wenn wir hierzu noch einmal einen Blick auf die Konsole werfen und uns ansehen, welche Optionen uns darüber hinaus angeboten werden, sehen wir direkt zu Beginn die Option&nbsp;<strong>command</strong>.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1915146b8f9"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29449" alt="Auf der Konsole sehen wir die command-Option" data-id="29449" width="742" data-init-width="1032" height="141" data-init-height="196" title="tkinter-button-6" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-6.png" data-width="742" data-height="141" style="aspect-ratio: auto 1032 / 196;" data-pagespeed-url-hash="116665884" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-6.png 1032w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-6-300x57.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-6-1024x194.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-6-768x146.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Der Begriff „command“ bedeutet ins Deutsche übersetzt „Befehl“. Das heißt, wir können innerhalb unseres Python-Programms eine <strong>Funktion</strong> programmieren und den Namen der Funktion der Option command zuweisen.</p><p>Damit ist die Funktion dann an den <strong>Button gekoppelt </strong>und das bedeutet, dass die entsprechende Funktion ausgeführt wird, sobald wir den Button klicken.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1715931821107">7. Mit command „auf Knopfdruck“ eine Funktion ausführen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Setzen wir das Ganze also direkt einmal in der Praxis um. Im ersten Schritt programmieren wir oben im Code eine beliebige <strong>Funktion</strong>, die wir beispielhaft <em>say_hello</em> nennen. Darin geben wir an, dass lediglich eine <strong>print-Funktion</strong> aufgerufen werden soll, in welcher wir „Hallo, danke dass du mich geklickt hast!“ übergeben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-1915151ced4"><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>def say_hello():</strong></span></span><br><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</strong><strong>print("Hallo, danke dass du mich geklickt hast!")</strong></span></span></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">root = tk.Tk()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Dieser Satz soll auf der Konsole ausgegeben werden, wenn wir auf den <strong>Button klicken</strong>. Jetzt übergeben wir bei der Erzeugung des Button-Objekts noch das <strong>command-Schlüsselwortargument:</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-19151553b05"><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">button1 = ttk.Button(root, text="Klick mich!", padding=10,&nbsp;</span></strong><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">command=</strong></span></span><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>)</strong></span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Hier ist jetzt wichtig, dass wir <strong>nur den Bezeichner</strong> der Funktion angeben, also say_hello:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-191515c1626"><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">button1 = ttk.Button(root, text="Klick mich!", padding=10,</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">&nbsp;</span></strong><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">command=</strong></span></span><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class=""><b><span lang="EN-US">say_hello</span></b></strong></span></span><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>)</strong></span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><blockquote class="">Die <strong>runden Klammern</strong>, die wir am Ende des Funktionsnamens normalerweise anfügen würden, um die Funktion aufzurufen,<strong> lassen wir </strong>an dieser Stelle ganz bewusst <strong>weg</strong>.</blockquote><p>Wenn wir das Programm jetzt ausführen und direkt den Button klicken, sehen wir, dass auf der Konsole tatsächlich der Text ausgegeben wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19151580cea"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29453" alt="Mit Klick auf den Tkinter Button wird der Text auf der Konsole ausgegeben" data-id="29453" width="742" data-init-width="1792" height="109" data-init-height="264" title="tkinter-button-7" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-7.png" data-width="742" data-height="109" style="aspect-ratio: auto 1792 / 264;" data-pagespeed-url-hash="411165805" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-7.png 1792w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-7-300x44.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-7-1024x151.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-7-768x113.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-7-1536x226.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Klicken wir öfter darauf, gibt das Programm den Text entsprechend mehrmals aus. Das heißt, wir haben damit mithilfe der Option <strong>command</strong> die Funktion <em>say_hello</em> erfolgreich an diesen <strong>Button</strong> <strong>gebunden</strong>.&nbsp;</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1717163257968">8. Diesen Fehler muss man vermeiden</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Ein sehr häufiger <strong>Fehler</strong>, den Anfänger an dieser Stelle oftmals begehen, ist, dass sie dem <strong>Funktionsnamen</strong> noch aus Gewohnheit die <strong>runden Klammern anhängen</strong>.</p><p>Sie schreiben also beim Zuweisen an die command-Option hinter <em>say_hello</em> noch ein rundes Klammerpaar, wie es im folgenden Codeabschnitt zu erkennen ist:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-19151553b05"><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">button1 = ttk.Button(root, text="Klick mich!", padding=10,&nbsp;</span></strong><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">command=</strong></span></span><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class=""><b class=""><span lang="EN-US">say_hello</span></b></strong></span></span><span style="color: rgb(255, 0, 0) !important;"><span style="--tcb-applied-color: rgb(255, 0, 0) !important;"><strong class=""><b class=""><span lang="EN-US">()</span></b></strong></span></span><span style="color: var(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>)</strong></span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen und auf den Button klicken, dann sehen wir, dass vermeintlich erst mal gar nichts in der Konsole passiert.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1717163257969">9. Was ein rundes Klammerpaar hinter der Funktion auslöst</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Scrollen wir nun allerdings in der Konsole weiter nach oben, stellen wir fest, dass die Funktion sehr wohl aufgerufen wurde:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191515d4553"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29457" alt="Die say_hello Funktion wurde aufgerufen" data-id="29457" width="742" data-init-width="1172" height="124" data-init-height="196" title="tkinter-button-8" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-8.png" data-width="742" data-height="124" style="aspect-ratio: auto 1172 / 196;" data-pagespeed-url-hash="705665726" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-8.png 1172w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-8-300x50.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-8-1024x171.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-8-768x128.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element"><p>Und zwar nicht, als wir den Button geklickt haben, sondern als das <strong>Programm</strong> Zeile für Zeile <strong>durchlaufen wurde</strong>.<em>&nbsp;</em>An der Stelle, an der wir die Funktion <em>say_hello</em> aufrufen, indem wir sie an die command-Option zuweisen, wird die Funktion auch tatsächlich aufgerufen.</p><p>Folglich gibt das Programm den String auf der Konsole aus und arbeitet dann den Rest des Codes ab. Das heißt, anschließend führt es noch die for-Schleife aus, weshalb uns zudem noch die Optionen in der Konsole ausgegeben werden.</p><blockquote class="">Wichtig zu verstehen ist, dass bei einem Klick auf den Button <strong>nichts</strong> passiert.</blockquote></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-191515f4b86"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29459" alt="Beim Klick auf den Tkinter Button geschieht nichts" data-id="29459" width="742" data-init-width="1010" height="141" data-init-height="192" title="tkinter-button-9" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-9.png" data-width="742" data-height="141" style="aspect-ratio: auto 1010 / 192;" data-pagespeed-url-hash="1000165647" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-9.png 1010w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-9-300x57.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-9-768x146.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das liegt daran, dass wir die Funktion <strong>nicht an den Buttonklick gekoppelt</strong> haben. Da wir sie direkt aufrufen, wird der <strong>Rückgabewert</strong> der Funktion an den Button gekoppelt.</p><p>Allerdings haben wir innerhalb der Funktionsdefinition oben <strong>keine return-Anweisung</strong>, mit der wir etwas zurückgeben:&nbsp;</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">from tkinter import ttk</span></p><p data-css="tve-u-191516161e1"><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>def say_hello():</strong></span></span><br><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</strong></span></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">print("Hallo, danke dass du mich geklickt hast!")</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><p>Aus diesem Grund wird automatisch der Wert <strong>none</strong> zurückgegeben, bei welchem <strong>nichts</strong> geschieht. Das bedeutet, wir haben an den Buttonklick gekoppelt, dass das Programm <em>none</em> ausführt. Da dadurch nichts passiert, macht das natürlich keinen Sinn.</p><blockquote class="">Merke dir also: Wenn du der <strong>command-Option eine Funktion zuweist</strong>, dann weise dieser immer nur den Bezeichner der Funktion zu, <strong>ohne</strong> die runden <strong>Klammern</strong> dahinter aufzurufen:</blockquote></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-1915168d417"><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-1915165b054">button1 = ttk.Button(root, text="Klick mich!", padding=10, command=</span></strong><span style="color: var(--tcb-color-1) !important;" data-css="tve-u-1915165b057"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;" data-css="tve-u-1915165b062"><strong>say_hello</strong></span></span><span data-css="tve-u-1915165b057" style="color: rgb(255, 0, 0) !important;"><span data-css="tve-u-1915165b062" style="--tcb-applied-color: rgb(255, 0, 0) !important;"><strong class=""><s class="">()</s></strong></span></span><span data-css="tve-u-1915165b057" style="color: var(--tcb-color-1) !important;"><span data-css="tve-u-1915165b062" style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>)</strong></span></span></p><p style="" data-css="tve-u-1915165afdc"><span data-css="tve-u-1915165aff1">button1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm an dieser Stelle noch einmal ohne die runden Klammern nach dem Funktionsnamen ausführen, sehen wir, dass es jetzt so funktioniert wie wir uns das vorstellen. Klicken wir dreimal auf den Button, dann erhalten wir auch dreimal den Text in der Konsole:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1915169d16f"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29462" alt="Ohne rundes Klammerpaar funktioniert der Tkinter Button wie gewünscht" data-id="29462" width="742" data-init-width="2210" height="152" data-init-height="452" title="tkinter-button-10" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-10.png" data-width="742" data-height="152" style="aspect-ratio: auto 2210 / 452;" data-pagespeed-url-hash="3215070159" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-10.png 2210w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-10-300x61.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-10-1024x209.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-10-768x157.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-10-1536x314.png 1536w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-10-2048x419.png 2048w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1717163257970">10. Mit einem Tkinter Button Widget die Anwendung beenden</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Man hat sogar die Möglichkeit, einen Button zu erstellen, der das <strong>Fenster schließt</strong> und die Anwendung damit beendet. Das werde ich dir auch direkt einmal zeigen. Wir bauen dafür einen weiteren Button in unsere Anwendung, den wir beispielhaft <em>quit_button</em> nennen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()<br></span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>quit_button</strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">for item in button1.keys():</p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Diesem weisen wir wieder ttk.Button zu, wählen als Parent wie gewohnt <em>root</em>, womit unser Hauptfenster gemeint ist und übergeben als Text „Programm beenden“. Schließlich ist das die Aktion, die der Button gleich vollziehen soll.&nbsp;</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()<br></span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>quit_button&nbsp;<b><span lang="EN-US">= ttk.Button(root, text="Programm beenden",&nbsp;</span></b></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">for item in button1.keys():</p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1718783367643">11. Die destroy-Funktion</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt müssen wir noch einen entsprechenden <strong>Command</strong> übergeben, wofür wir keine eigene Funktion programmieren, da es bereits eine gibt. Auf diese können wir zurückgreifen, um das <strong>Programm zu beenden</strong>. Wir schreiben dafür root.<strong>destroy</strong> und verzichten wieder auf die runden Klammern dahinter:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()<br></span></p><p style="" data-css="tve-u-1918dc48739">quit_button <strong><b class=""><span lang="EN-US">= ttk.Button(</span></b><b class=""><span lang="EN-US">root</span></b></strong><strong><b class=""><span lang="EN-US">, text="Programm beenden",</span></b><b><span lang="EN-US"> </span></b></strong><strong><b><span lang="EN-US"><b><span lang="EN-US"><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">command=root.destroy</span>)</span></b></span></b></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">for item in button1.keys():</p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Damit der Button sichtbar ist, müssen wir diesen natürlich mit <em>pack</em> in die GUI packen:&nbsp;</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">button1.pack()<br></span></p><p><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">quit_button = ttk.Button(root, text="Programm beenden", command=root.destroy)</span></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"></span></strong><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">quit_button.pack()</span></strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt noch einmal ausführen, sehen wir ab sofort zwei Buttons. Klicken wir auf den Button mit der Aufschrift „Klick mich!“, wird weiterhin die Funktion <em>say_hello</em> mit jedem Klick ausgeführt, was sich auf der Konsole erkennen lässt. Wenn wir auf „Programm beenden“ klicken, wird das <strong>Programm direkt beendet</strong>.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1918dce8b58"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29487" alt="Mit Klick auf den Tkinter Button &quot;Programm beenden&quot; schließt sich das Fenster" data-id="29487" width="742" data-init-width="1012" height="136" data-init-height="186" title="tkinter-button-11" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-11.png" data-width="742" data-height="136" style="aspect-ratio: auto 1012 / 186;" data-pagespeed-url-hash="3509570080" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-11.png 1012w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-11-300x55.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-11-768x141.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wie du damit gesehen hast, können wir mit einem Button schon mal spannende Dinge anstellen. Wenn wir jetzt noch mal einen Blick auf die Konsole werfen, erkennen wir als weitere mögliche Option&nbsp;<em>state</em>, welche aktuell als&nbsp;<em>normal</em> angezeigt wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1918dd1b52c"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29488" alt="In der Konsole sehen wir die Option state" data-id="29488" width="742" data-init-width="2066" height="157" data-init-height="438" title="tkinter-button-12" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-12.png" data-width="742" data-height="157" style="aspect-ratio: auto 2066 / 438;" data-pagespeed-url-hash="3804070001" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-12.png 2066w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-12-300x64.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-12-1024x217.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-12-768x163.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-12-1536x326.png 1536w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-12-2048x434.png 2048w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Schauen wir uns nun auch diese Option im Detail an.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1718783367644">12. Die Option state</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir haben die Möglichkeit, einen Button auf den state „<strong>normal</strong>“ oder auf „<strong>disabled</strong>“, also „ausgeschaltet“, zu setzen.</p><p>Im <em>normalen</em> Zustand lässt sich der Button klicken, bei <em>disabled</em> hingegen nicht.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1723638891455">13. Der state DISABLED</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir setzen den Button jetzt also mal von Beginn an auf den state <em>disabled</em>, indem wir oben im Code als weiteres Schlüsselwortargument Folgendes übergeben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">button1 = ttk.Button(root, text="Klick mich!", padding=10, command=say_hello,&nbsp;</span></strong><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">state=tk.DISABLED</strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>)</strong></span></span></p><p style="" data-css="tve-u-1918dd5be9a"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">button1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, fällt auf, dass der Button zwar innerhalb der GUI angezeigt, aber etwas <strong>ausgegraut</strong> dargestellt wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1918dd89075"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29492" alt="Der Tkinter Button &quot;Klick mich!&quot; ist nun ausgegraut" data-id="29492" width="742" data-init-width="1436" height="141" data-init-height="272" title="tkinter-button-13" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-13.png" data-width="742" data-height="141" style="aspect-ratio: auto 1436 / 272;" data-pagespeed-url-hash="4098569922" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-13.png 1436w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-13-300x57.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-13-1024x194.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/08/tkinter-button-13-768x145.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Beim Klicken auf den Button passiert <strong>nichts</strong>. Das liegt daran, dass wir ihn mithilfe der <strong>state-Option</strong> sozusagen <strong>deaktiviert</strong> haben. Der Default-Wert für state ist aber wie gesagt „normal“, was bedeutet: Wenn wir die state-Option <strong>nicht explizit</strong> selbst <strong>setzen</strong>, ist der Button immer auf dem <strong>state „normal“</strong>, wie beispielsweise der Button „Programm beenden“. Das heißt, dass wir ihn ganz normal verwenden können.&nbsp;</p><p>Wenn wir also beispielhaft darauf klicken, schließt sich das Programm tatsächlich.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1723638891456">14. Der state NORMAL</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Darüber hinaus könnten wir den Button über die state-Option <strong>explizit</strong> auf den Zustand <strong>„normal“</strong> setzen, indem wir im Code <em>tk.NORMAL</em> schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66bc91390a71c4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66bc91390a71e7">	<p data-css="tve-u-1918ddb31f4"><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">button1 = ttk.Button(root, text="Klick mich!", padding=10, command=say_hello,&nbsp;</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">state=tk.</span></strong><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">NORMAL</strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>)</strong></span></span></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">button1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir diese Zeile weglassen würden, könnten wir wie bereits erwähnt, mit dem <strong>gleichen Ergebnis </strong>rechnen.</p><p>Beim Ausführen des Programms sehen wir, dass wir den Button tatsächlich wieder klicken können.</p><p>Sobald man zum ersten Mal von der state-Option gehört hat, empfindet man diese möglicherweise <strong>zunächst</strong> einmal als <strong>nutzlos</strong>, allerdings kann man damit tatsächlich <strong>sinnvolle Dinge umsetzen</strong>.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66bc91390a7271" id="t-1723638891457">15. Wie man die state-Option in der Praxis einsetzen kann</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Stell dir beispielsweise einmal vor, du schreibst eine grafische Benutzeroberfläche, über welche später eine reale <strong>Fertigungsmaschine</strong> gesteuert wird, die ein Bauteil innerhalb einer Fabrik produziert.</p><p>Wenn man die Maschine starten möchte, fährt die grafische Benutzeroberfläche hoch und über einen <strong>Startbutton</strong> lässt sich der <strong>Produktionsprozess</strong> einleiten.&nbsp;</p><p>Nun muss die Maschine allerdings erst mal <strong>vorheizen</strong>, bevor sie ein Bauteil korrekt produzieren kann. Denn wenn sie beispielsweise <strong>zu kalt</strong> ist und somit die Betriebstemperatur nicht erreicht hat, produziert sie zwar dennoch die Bauteile, allerdings in einem <strong>schlechten Zustand</strong>, sodass diese letzten Endes entsorgt werden müssen.</p><p>Das möchte man natürlich vermeiden und an dieser Stelle kommt auch schon die <strong>state-Option</strong> ins Spiel. Damit kann man nämlich programmieren, dass der Button, der den Produktionsprozess startet, <strong>erst dann geklickt</strong> werden kann, wenn die <strong>Betriebstemperatur erreicht</strong> ist. Bevor die Betriebstemperatur erreicht ist, soll der Button nicht klickbar sein. Demnach lässt sich die state-Option also tatsächlich sinnvoll in einem Programm einsetzen.</p><p>Jetzt, da du die state-Option kennengelernt hast, kannst du diese auf <strong>kreative Weise</strong> in deinem eigenen Programm implementieren.&nbsp;</p><p>Damit weißt du auch schon über die <strong>wichtigsten Features </strong>des Tkinter <strong>Button Widgets </strong>Bescheid und kannst im folgenden Beitrag direkt am nächsten Widget anknüpfen.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-66bc91390a73a8" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-66bc91390a73b2"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-66bc91390a73d9" style=""><div class="tcb-flex-col" data-css="tve-u-66bc91390a73e2" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-66bc91390a73f1" style="" data-button-size="s"> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-stringvar/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-66bc91390a7410" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-192002f469b" style="" data-button-size="s"> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-entry/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-button-widget/">Python Tkinter Tutorial #9 – Das Tkinter Button Widget</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #8 &#8211;  Tkinter StringVar, IntVar, DoubleVar und BooleanVar</title>
		<link>https://www.programmieren-starten.de/blog/tkinter-stringvar/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Tue, 17 Sep 2024 10:19:13 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=29336</guid>

					<description><![CDATA[<p>In diesem Beitrag werden wir uns in Tkinter StringVar, IntVar, DoubleVar und BooleanVar ansehen. Im vergangenen Artikel hast du bereits die unterschiedlichen Optionen kennengelernt, die wir für TTK-Labelobjekte setzen können. Eine dieser Optionen, nämlich die Option textvariable möchte ich in diesem Beitrag außerdem noch gesondert erklären, da es bei dieser einiges zu beachten gibt. Inhaltsverzeichnis [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-stringvar/">Python Tkinter Tutorial #8 &#8211;  Tkinter StringVar, IntVar, DoubleVar und BooleanVar</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>In diesem Beitrag werden wir uns in Tkinter StringVar, IntVar, DoubleVar und BooleanVar ansehen. Im vergangenen Artikel hast du bereits die unterschiedlichen <strong>Optionen</strong> kennengelernt, die wir für TTK-Labelobjekte setzen können. Eine dieser Optionen, nämlich die Option <em><strong>textvariable</strong></em> möchte ich in diesem Beitrag außerdem noch gesondert erklären, da es bei dieser einiges zu beachten gibt.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=zEBmvpqCXdE&amp;t=115s&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-667e640464a293" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #8 - Tkinter Variablen (StringVar, IntVar, DoubleVar, BooleanVar)" class="tcb-responsive-video" data-code="zEBmvpqCXdE" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="96110414" loading="lazy" data-src="https://www.youtube-nocookie.com/embed/zEBmvpqCXdE?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-667e640464a333" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-667e640464a351">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Die Option text</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Kann man Variablen an Labels binden?</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Den Inhalt der Variable nachträglich ändern</a></div><div class="tve_ct_level1"><a href="#t-1715931821104" rel="nofollow">4. Die Variable an das Label binden mit der Option textvariable</a></div><div class="tve_ct_level1"><a href="#t-1715931821105" rel="nofollow">5. Die Tkinter StringVar Klasse</a></div><div class="tve_ct_level1"><a href="#t-1715931821106" rel="nofollow">6. Mit der set-Methode den Inhalt der Tkinter StringVar ändern</a></div><div class="tve_ct_level1"><a href="#t-1715931821107" rel="nofollow">7. Die Vorteile von Tkinter StringVar</a></div><div class="tve_ct_level1"><a href="#t-1717163257968" rel="nofollow">8. Wiederholung: So erstellt man eine String-Variable</a></div><div class="tve_ct_level1"><a href="#t-1717163257969" rel="nofollow">9. Den Inhalt der Variable mit der get-Methode zurückgeben</a></div><div class="tve_ct_level1"><a href="#t-1717163257970" rel="nofollow">10. Die Klasse IntVar</a></div><div class="tve_ct_level1"><a href="#t-1718783367643" rel="nofollow">11. Die Klasse DoubleVar</a></div><div class="tve_ct_level1"><a href="#t-1718783367644" rel="nofollow">12. Die Klasse BooleanVar</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a362" id="tab-con-10">1. Die Option text</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Bisher haben wir nur die Option text verwendet, welcher wir einen String zuweisen konnten, der dann als Text des Labels angezeigt wurde.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906d827e1c"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29345" alt="Die text-Option veranschaulicht auf einem Beispiel" data-id="29345" width="866" data-init-width="1244" height="295" data-init-height="424" title="tkinter-stringvar-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-1.png" data-width="866" data-height="295" style="aspect-ratio: auto 1244 / 424;" data-pagespeed-url-hash="3139198814" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-1.png 1244w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-1-300x102.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-1-1024x349.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-1-768x262.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element"><p>Auf der obenstehenden Abbildung sehen wir ein kleines Beispiel, das diese Option veranschaulicht.</p><p>Wir sehen darauf, dass wir die <strong>text-</strong><strong>O</strong><strong>ption</strong> gesetzt und dieser den String „Das ist ein String“ zugewiesen haben. Wenn wir das Ganze ausführen, wird der String nun als Label angezeigt.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906d83d86b"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29347" alt="Der String wird als Label angezeigt" data-id="29347" width="866" data-init-width="1182" height="208" data-init-height="284" title="tkinter-stringvar-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-2.png" data-width="866" data-height="208" style="aspect-ratio: auto 1182 / 284;" data-pagespeed-url-hash="3433698735" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-2.png 1182w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-2-300x72.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-2-1024x246.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-2-768x185.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Möchten wir den String <strong>nachträglich ändern,</strong> könnten wir das zum einen über die <strong>configure-Methode</strong> beispielsweise folgendermaßen tun:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong> </strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong>label1.configure(text="Neuer Text")</strong></span></span></p><p style="" data-css="tve-u-1906d8523f7"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong></span></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">root.mainloop()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><p>Nachdem wir das Programm so ausgeführt haben, zeigt es den neuen Text an:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906d8638d3"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29350" alt="Mithilfe der configure-Methode wird der neue Text nachträglich angezeigt" data-id="29350" width="866" data-init-width="1082" height="197" data-init-height="246" title="tkinter-stringvar-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-3.png" data-width="866" data-height="197" style="aspect-ratio: auto 1082 / 246;" data-pagespeed-url-hash="3728198656" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-3.png 1082w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-3-300x68.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-3-1024x233.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-3-768x175.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Alternativ können wir den String auch über die <strong>Schlüsselschreibweise</strong> ändern, die wir ebenfalls im letzten Blogartikel kennengelernt haben. Dabei gibt man den Schlüssel „<strong>text</strong>“ zwischen den eckigen Klammern an und weist den neuen Text zu:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong> </strong><strong></strong></span></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1["text"] = "Neuer Text"</span></strong></p><p style="" data-css="tve-u-1906d8ab684"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong></span>root.mainloop()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm anschließend noch einmal ausführen, sehen wir, dass es genauso funktioniert. Egal, wie wir es auch machen: wir müssen jedes Mal mit einer <strong>manuellen Zeile Code</strong> für die Änderung des Wertes sorgen.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a362" id="t-1688547294220">2. Kann man Variablen an Labels binden?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Deutlich praktischer wäre es, wenn auch die Möglichkeit bestünde, den <strong>Inhalt</strong> des Labels an eine <strong>Variable zu binden</strong>. So würde immer der Inhalt im Label angezeigt werden, der sich <strong>aktuell</strong> in der Variable befindet, die wir an das Label gebunden haben.</p><p>An dieser Stelle definieren wir nun mal eine normale Variable und prüfen anschließend, ob das Vorhaben tatsächlich mit diesen Variablen funktioniert.</p><p>Wir nennen diese beispielhaft <em>text_variable</em> und speichern darin den Text „Text der Variable“:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.geometry("400x400")</span></p><p><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">text_variable = "Text der Variable"</span></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Die Zeile unten können wir wieder löschen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p data-css="tve-u-1906db30533" style=""><strong><span style="text-decoration: line-through; --tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">label1["text"] = "Neuer Text"</span></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt weisen wir dem <strong>Schlüsselwortargument</strong>
<em><strong>text</strong></em>, dem wir aktuell den <strong>hartkodierten</strong> String „Das ist ein String“ zuweisen, den Inhalt der entsprechenden Textvariable zu, nämlich „text_variable“:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">text_variable = "Text der Variable"<br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"></span></strong><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"></span></strong><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">label1 = ttk.Label(root, text=</strong></span></span><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">text_variable</strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">)</strong></span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-1906dbfaf13"><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Da der String darin gespeichert ist, sollten wir diesen jetzt gleich sehen. Nach dem Ausführen des Programms, wird der String, den wir in der Variable text_variable gespeichert haben, <strong>tatsächlich</strong> über das Label <strong>angezeigt</strong>:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906dc9c134"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29358" alt="Der String in der Variable text_variable wird angezeigt" data-id="29358" width="866" data-init-width="1134" height="203" data-init-height="266" title="tkinter-stringvar-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-4.png" data-width="866" data-height="203" style="aspect-ratio: auto 1134 / 266;" data-pagespeed-url-hash="4022698577" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-4.png 1134w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-4-300x70.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-4-1024x240.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-4-768x180.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1689865778143">3. Den Inhalt der Variable nachträglich ändern</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Was passiert jetzt aber, wenn wir <strong>später</strong> im Programm den Inhalt der Variable auf den String „Neuer Text“ <strong>ändern</strong>?</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="color: var(--tcb-skin-color-2) !important; --tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>text_variable = "Neuer Text"</strong></p><p style="color: var(--tcb-skin-color-2) !important; --tcb-applied-color: var$(--tcb-skin-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.mainloop()</span></p><p data-css="tve-u-667e640464a437" style=""><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir den Code jetzt ausführen, sehen wir <strong>immer noch</strong> den <strong>ursprünglichen Wert</strong> „Text der Variable“ auf der GUI, der über das Label angezeigt wird, anstatt des neuen Strings:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906dceab18"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29362" alt="tkinter stringvar: Wir sehen immer noch den ursprünglichen Wert der Variable" data-id="29362" width="866" data-init-width="1148" height="192" data-init-height="254" title="tkinter-stringvar-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-5.png" data-width="866" data-height="192" style="aspect-ratio: auto 1148 / 254;" data-pagespeed-url-hash="22231202" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-5.png 1148w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-5-300x66.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-5-1024x227.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-5-768x170.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Die Änderung <strong>aktualisiert</strong> sich damit <strong>nicht</strong> im Label, weil der Inhalt der Variable nur <strong>einmal</strong> an die Textoption des Labels zu dem Zeitpunkt gebunden wird, wenn wir das <strong>Labelobjekt erzeugen</strong>.</p><p>Also genau dann, wenn wir das Labelobjekt erzeugen, wird der Inhalt der Variable an die Textoption zugewiesen. Das bedeutet, dass alle Änderungen, die wir <strong>danach</strong> an der Variable vornehmen, das Label <strong>nicht mehr interessieren</strong>. Wir haben den Wert der Text-Variable also nur ein einziges Mal ausgelesen und nicht wirklich an das Label gebunden.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1715931821104">4. Die Variable an das Label binden mit der Option <em>textvariable</em></h2></div><div class="thrv_wrapper thrv_text_element">	<p>Um eine Variable nun an ein Label zu binden, existiert anstatt der text-Option die Option <strong><em>textvariable</em></strong>. Das heißt, wir ändern die Option <em>text</em> in unserem Code zu <em>textvariable</em>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">text_variable = “Text der Variable”</span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>label1 = ttk.Label(root, <span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">textvariable</span>=text_variable)</strong><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, sehen wir erst einmal gar nichts, weil das Label leer ist. Das ist ziemlich komisch, da wir schließlich vorhin den String „Text der Variable“ der Variable zugewiesen haben.</p><p>Das Problem ist jetzt das Folgende: Die Option <strong>textvariable</strong> benötigt eine <strong>spezielle Variablenart</strong>. Wir können also nicht jede beliebige Python-Variable an ein Label binden, sondern nur spezielle <strong>Tkinter-Variablen</strong>. Eine solche spezielle Variable, die sich an ein Label-Widget binden lässt, ist beispielsweise Tkinter <em><strong>StringVar</strong></em> und kann folgendermaßen erzeugt werden.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1715931821105">5. Die Tkinter StringVar Klasse</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Dafür legen wir eine beliebige Python-Variable an, wie zum Beispiel die Text-Variable, die sich ohnehin schon in unserem Programm befindet. Anstatt jetzt aber direkt den Inhalt in Form eines Strings zuzuweisen, weisen wir ein Objekt der <strong>speziellen Tkinter StringVar</strong> zu. Das setzen wir im Code folgendermaßen um:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.geometry("400x400")</span></p><p style="color: var(--tcb-skin-color-2) !important; --tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>text_variable = <span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">tk.StringVar()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Nun besitzen wir mit der Variable text_variable eine ganz normale Python-Variable, mit der wir auf das Objekt StringVar <strong>referenzieren</strong>.</p><p>Jetzt müssen wir noch den gewünschten <strong>Text in die Tkinter-String-Variable einfügen</strong>, was wir mit der sogenannten <strong>set-Methode</strong> umsetzen. Das heißt, wir schreiben darunter im Code <em>text_variable</em>, rufen die set-Methode auf und ergänzen zwischen den runden Klammern „Das ist der neue Text“:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">text_variable = tk.StringVar()</span><br><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">text_variable.set("Das ist der neue Text")</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Die <strong>Referenz</strong> dieser Tkinter StringVar haben wir in der text_variable gespeichert und diese ist nach wie vor an die <strong>Option textvariable</strong> des Label-Widgets gebunden, wodurch wir hier nichts verändern müssen.</p><p>Nun löschen wir noch die Zeile, in der wir den neuen Text zuweisen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-1906ddde69a"><strong><s>text_variable = "Neuer Text"</s></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, sehen wir, dass der <strong>Text</strong>, der sich innerhalb der speziellen <strong>Tkinter-String-Variable </strong><strong>befindet</strong>, als Inhalt des Labels auf der GUI ausgegeben wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906ddf6fb9"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29371" alt="Der Text der Tkinter Stringvar wird auf der GUI angezeigt" data-id="29371" width="866" data-init-width="1282" height="190" data-init-height="282" title="tkinter-stringvar-6" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-6.png" data-width="866" data-height="190" style="aspect-ratio: auto 1282 / 282;" data-pagespeed-url-hash="316731123" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-6.png 1282w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-6-300x66.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-6-1024x225.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-6-768x169.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element"><blockquote class="">Ziemlich praktisch daran ist jetzt folgendes: Jedes Mal, wenn wir im weiteren Programmverlauf dieser String-Variable einen <strong>neuen Wert zuweisen</strong>, <strong>aktualisiert</strong> sich auch der <strong>Text des Labels</strong>.</blockquote></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1715931821106">6. Mit der set-Methode den Inhalt der Tkinter StringVar ändern</h2></div><div class="thrv_wrapper thrv_text_element"><p>Wir können also irgendwann <strong>später</strong> im Programm den Text der String-Variable, die wir an das Label gebunden haben, mithilfe der <strong>set-Methode verändern </strong>und beispielsweise den Text „Aktualisierter Text“ übergeben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">text_variable.set("Aktualisierter Text")</span></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong>root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm anschließend ausführen, sehen wir, dass eine Änderung später im Programm <strong>sofort wirksam</strong> wird und das Label den veränderten Text anzeigt:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906e37f40e"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29374" alt="Die Änderung der Tkinter StringVar ist sofort wirksam" data-id="29374" width="866" data-init-width="886" height="199" data-init-height="204" title="tkinter-stringvar-7" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-7.png" data-width="866" data-height="199" style="aspect-ratio: auto 886 / 204;" data-pagespeed-url-hash="611231044" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-7.png 886w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-7-300x69.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-7-768x177.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wir haben den <strong>Inhalt</strong> der Tkinter-String-Variable also tatsächlich an das<strong> Label-Objekt gebunden</strong>. Das bedeutet, egal wie und wann wir den Inhalt der Tkinter-String-Variable aktualisieren, der angezeigte Text des Labels <strong>aktualisiert</strong> sich immer <strong>automatisch</strong> mit.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1715931821107">7. Die Vorteile von Tkinter StringVar</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Dadurch sorgen wir dafür, dass der angezeigte Text des Labels <strong>dynamisch</strong> ist.</p><p>Stell dir zum Beispiel folgendes vor: Innerhalb der GUI gibt es einen <strong>Button</strong> und sobald man diesen klickt, soll ein <strong>Label</strong> darunter anzeigen „Erfolgreich gesendet“.</p><p>Bevor der Button geklickt wurde, soll das Label darunter den <strong>Text</strong> „Zum Senden klicken“ <strong>anzeigen</strong>. Das kann man jetzt ideal über solch eine dynamische <strong>Tkinter-String-Variable</strong> umsetzen.</p><p>Ein anderes Beispiel: Du möchtest innerhalb deines Programms gewisse <strong>Berechnungen</strong> ausführen. Sobald das Programm ein bestimmtes Ergebnis berechnet hat, soll es über ein <strong>Label in der GUI angezeigt</strong> werden. Auch das lässt sich problemlos über eine dynamische <strong>Tkinter-String-Variable</strong> umsetzen.</p><p>Konkrete Beispiele, die den Sinn hinter diesen String-Variablen verdeutlichen, wirst du in den kommenden Blogartikeln noch in der Praxis sehen.</p><p>Mit diesem Beitrag wollte ich dir erst mal zeigen, wie du die speziellen Tkinter-Variablen <strong>erzeugen</strong> und an ein <strong>Widget</strong>
<strong>binden</strong> kannst.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1717163257968">8. Wiederholung: So erstellt man eine String-Variable</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Du musst also lediglich ein <strong>Objekt</strong> der Klasse StringVar erzeugen und die Referenz auf dieses Objekt in einer ganz normalen Python-Variable wie in unserem Beispiel „text_variable“ speichern. In dieser Python-Variable ist jetzt die Referenz gespeichert, was bedeutet, dass wir darauf die set-Methode aufrufen und einen gewünschten Wert zuweisen können.</p><p>Dann müssen wir diese Python-Variable nur noch an die Option <strong>textvariable</strong> zuweisen, sodass diese spezielle String-Variable an das Label gebunden ist. Um den <strong>Inhalt </strong>der Tkinter-Variable <strong>zu setzen</strong>, verwendet man, wie bereits erwähnt, die <strong>set-Methode</strong>. Das haben wir in unserem Programm bereits zweimal so umgesetzt.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1717163257969">9. Den Inhalt der Variable mit der get-Methode zurückgeben</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Übrigens kann man auch genauso die <strong>get-Methode </strong>einsetzen, um sich den Inhalt der Variable <strong>zurückgeben</strong> zu lassen. Das heißt, wir könnten uns zudem den Inhalt der Variable beispielsweise auf der <strong>Konsole</strong> ausgeben lassen, indem wir darauf die get-Methode aufrufen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">text_variable.set("Aktualisierter Text")</span><br><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">print(text_variable.get())</span></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">root.mainloop()</p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Nachdem wir das Programm so ausgeführt haben, sehen wir den Inhalt tatsächlich auf der Konsole:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906e51f33c"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29377" alt="Wir lassen den Inhalt der Tkinter Stringvar auf der Konsole ausgeben" data-id="29377" width="866" data-init-width="1138" height="158" data-init-height="208" title="tkinter-stringvar-8" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-8.png" data-width="866" data-height="158" style="aspect-ratio: auto 1138 / 208;" data-pagespeed-url-hash="905730965" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-8.png 1138w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-8-300x55.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-8-1024x187.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-8-768x140.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1717163257970">10. Die Klasse IntVar</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Diese speziellen Tkinter-Variablen gibt es nicht nur als String-Variablen, sondern auch als <strong>Integer</strong>-, <strong>Double</strong>- und <strong>Boolean-Variablen</strong>. Um also anstatt der String- eine Integer-Variable zu erstellen, erzeugt man sich ein Objekt der Klasse <strong>IntVar</strong>. Wir schreiben damit in unserem Code nun anstelle von StringVar <em>IntVar</em>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.geometry("400x400")</span></p><p style="color: var(--tcb-skin-color-2) !important; --tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>text_variable = tk.IntVar()</strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">text_variable.set("Das ist der neue Text")</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Da wir jetzt eine IntVar definiert haben, werden wir darin natürlich einen Integer-Wert, also eine <strong>Ganzzahl</strong> speichern. Bei der Set-Methode übergeben wir dafür beispielhaft die Ganzzahl 10:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p data-css="tve-u-1906e559452" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">text_variable = tk.IntVar()</span><br><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">text_variable.set(</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">10</span><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">)</span></strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Weiter unten aktualisieren wir den Wert zum Beispiel auf die Ganzzahl 20:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-1906e560683">label1.pack()</span></p><p style="" data-css="tve-u-1906e564604"><strong>text_variable.set(<span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">20</span>)</strong></p><p style="" data-css="tve-u-1906e56067f">root.mainloop()</p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm ausführen, sehen wir, dass die Zahl 20 über das Label angezeigt wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906e572ec4"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29381" alt="Anstelle von Tkinter Stringvar gibt es auch intvar für Ganzzahlen" data-id="29381" width="866" data-init-width="1482" height="143" data-init-height="244" title="tkinter-stringvar-9" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-9.png" data-width="866" data-height="143" style="aspect-ratio: auto 1482 / 244;" data-pagespeed-url-hash="1200230886" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-9.png 1482w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-9-300x49.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-9-1024x169.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-9-768x126.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1718783367643">11. Die Klasse DoubleVar</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Möchten wir eine <strong>Kommazahl</strong> über eine spezielle Tkinter-Variable speichern, dann erzeugen wir kein Objekt der Klasse IntVar, sondern eins der Klasse <strong>DoubleVar</strong>.</p><p>Dabei könnten wir dann beispielsweise 10,2 oder 20,4 übergeben.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-667e640464a3e5" id="t-1718783367644">12. Die Klasse BooleanVar</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Außerdem haben wir die Möglichkeit, eine sogenannte <strong>BooleanVar</strong> zu erzeugen. Wir schreiben dafür <em>BooleanVar</em> und übergeben dann einen entsprechenden <strong>Wahrheitswert</strong>, wofür wir zunächst True festlegen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388"><p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.geometry(“400x400”)</span></p><p><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">text_variable = tk.</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">BooleanVar()</span></strong><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">text_variable.set(</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">True</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Im Nachhinein ändern wir diesen auf False:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-667e640464a377" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-667e640464a388"><p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-1906e599e75"><strong>text_variable.set(<span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">False</span>)</strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm ausführen, sehen wir eine <strong>Null</strong>:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1906e5b141b"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29384" alt="Bei unserer BooleanVar wird uns 0 angezeigt" data-id="29384" width="866" data-init-width="1412" height="150" data-init-height="244" title="tkinter-stringvar-10" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-10.png" data-width="866" data-height="150" style="aspect-ratio: auto 1412 / 244;" data-pagespeed-url-hash="3653812692" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-10.png 1412w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-10-300x52.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-10-1024x177.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/07/tkinter-stringvar-10-768x133.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das liegt daran, dass der Wahrheitswert <strong>True als 1 </strong>zurückgegeben und über ein Label auch als 1 angezeigt wird. Den Wahrheitswert <strong>False zeigt ein Label hingegen als 0</strong> an.</p><p>Damit kennst du nun auch die speziellen Tkinter-Variablen und kannst sie fortan an deine Widgets binden.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-667e640464a868" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-667e640464a882"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-667e640464a892" style=""><div class="tcb-flex-col" data-css="tve-u-667e640464a8b2" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-667e640464a8d4" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/ttk-label/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-667e640464a8f2" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-191ffa86792" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-button-widget/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-stringvar/">Python Tkinter Tutorial #8 &#8211;  Tkinter StringVar, IntVar, DoubleVar und BooleanVar</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #7 &#8211; Das ttk Label Widget</title>
		<link>https://www.programmieren-starten.de/blog/ttk-label/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Tue, 17 Sep 2024 09:13:05 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=29201</guid>

					<description><![CDATA[<p>Im letzten Beitrag hast du bereits gelernt, dass es neben den TK Widgets auch die neueren sogenannten TTK Widgets gibt. Da wir in diesem Kurs bisher nur mit dem TK Label Widget gearbeitet haben, werden wir uns nun in diesem Artikel detailliert dem TTK Label Widget&#160;widmen. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Eine Einführung in die ttk Widgets2. [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/ttk-label/">Python Tkinter Tutorial #7 &#8211; Das ttk Label Widget</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Im letzten Beitrag hast du bereits gelernt, dass es neben den TK Widgets auch die neueren sogenannten <strong>TTK Widgets</strong> gibt. Da wir in diesem Kurs bisher nur mit dem TK Label Widget gearbeitet haben, werden wir uns nun in diesem Artikel detailliert dem <strong>TTK Label Widget&nbsp;</strong>widmen.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=pezm8hRONgs&amp;t=848s&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-66702f0ab7f231" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #7 - Das ttk Label Widget" class="tcb-responsive-video" data-code="pezm8hRONgs" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="679928334" data-src="https://www.youtube-nocookie.com/embed/pezm8hRONgs?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-66702f0ab7f2c5" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-66702f0ab7f2e7">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Eine Einführung in die ttk Widgets</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Textzuweisung beim ttk Label</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Bildintegration in ttk Labels</a></div><div class="tve_ct_level1"><a href="#t-1715931821104" rel="nofollow">4. Einfügen und Öffnen von Bildern</a></div><div class="tve_ct_level1"><a href="#t-1715931821105" rel="nofollow">5. Bildgrößenanpassung mit resize</a></div><div class="tve_ct_level1"><a href="#t-1715931821106" rel="nofollow">6. Dynamische Bildänderung</a></div><div class="tve_ct_level1"><a href="#t-1715931821107" rel="nofollow">7. Optionen mit der Schlüsselschreibweise ändern</a></div><div class="tve_ct_level1"><a href="#t-1717163257968" rel="nofollow">8. Text und Bild im ttk Label kombinieren</a></div><div class="tve_ct_level1"><a href="#t-1717163257969" rel="nofollow">9. Die compound-Option nutzen</a></div><div class="tve_ct_level1"><a href="#t-1717163257970" rel="nofollow">10. ttk Label Optionen ändern</a></div><div class="tve_ct_level1"><a href="#t-1718783367643" rel="nofollow">11. Verfügbare Optionen ermitteln</a></div><div class="tve_ct_level1"><a href="#t-1718783367644" rel="nofollow">12. Padding bei ttk Labels</a></div><div class="tve_ct_level1"><a href="#t-1718783367645" rel="nofollow">13. Die Schriftart ändern</a></div><div class="tve_ct_level1"><a href="#t-1718783367646" rel="nofollow">14. Der Einfluss von Themes auf das ttk Label</a></div><div class="tve_ct_level1"><a href="#t-1718783367647" rel="nofollow">15. Die Besonderheit der background-Option</a></div><div class="tve_ct_level1"><a href="#t-1718783367648" rel="nofollow">16. Die Hintergrundfarbe und das Theme anpassen</a></div><div class="tve_ct_level1"><a href="#t-1718783367649" rel="nofollow">17. Einschränkungen durch Themes</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f2f8" id="tab-con-10">1. Eine Einführung in die ttk Widgets</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Bisher haben wir gesehen, wie man ein <strong>Label-Widget</strong> erzeugt und wie man diesem einen <strong>Text</strong> zuweist. Das geschieht, indem wir eine Variable definieren, die wir nun für unser Beispiel „label1“ nennen.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root = tk.Tk()</span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.geometry("400x400")<strong> </strong></span></p><p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1 = ttk.Label(root, text="Hello World")</span></strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"></span></p><p data-css="tve-u-1902f9ccdb7" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.mainloop()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Anschließend packen wir das Ganze noch mithilfe von pack in die GUI.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p data-css="tve-u-1902fb2632b" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1 = ttk.Label(root, text="Hello World")</span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1.pack()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm ausführen, sehen wir, dass das Label erfolgreich in der GUI angezeigt wird:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1902fb2e119"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29211" alt="Das ttk Label wird in der GUI angezeigt" data-id="29211" width="866" data-init-width="1434" height="190" data-init-height="314" title="ttk-label-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-1.png" data-width="866" data-height="190" style="aspect-ratio: auto 1434 / 314;" data-pagespeed-url-hash="3887371245" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-1.png 1434w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-1-300x66.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-1-1024x224.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-1-768x168.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f2f8" id="t-1688547294220">2. Textzuweisung beim ttk Label</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Das Erste, das ich dir direkt zu Beginn kurz zeigen möchte, ist, dass man den <strong>Text</strong> auch <strong>nach</strong> der <strong>Erzeugung des Label-Objekts </strong>setzen kann, und zwar mit Hilfe der sogenannten <strong>configure-Methode</strong>. Das heißt, wir könnten den Text "Hello World" weglassen und stattdessen weiter unten auf Label 1 die configure-Methode aufrufen. Wir übergeben also das Schlüsselwort Text diesmal der configure-Methode:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1 = ttk.Label(root</span><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">,<s class="">&nbsp;text="Hello World"</s></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span><br><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">label1.pack()</span></span></p><p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1.configure(text="Hello World")</span></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, sehen wir, dass es zur gleichen Ausgabe kommt wie zuvor. Man muss die Text-Option also <strong>nicht</strong> zwingend <strong>bei der Erzeugung</strong> des Label-Objekts setzen, sondern kann dies auch <strong>danach</strong> tun, indem man die configure-Methode auf dem Label aufruft.</p><p>Das gilt nicht nur für die Text-Option, sondern auch für <strong>jede weitere Option</strong>, die wir im Verlauf des Beitrags noch kennenlernen werden. Damit weißt du nun, dass es diese alternative Möglichkeit ebenfalls gibt. Wir ändern den Code an dieser Stelle wieder zurück auf das ursprüngliche Beispiel, in welchem wir die Text-Option direkt bei der Objekterzeugung setzen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1689865778143">3. Bildintegration in ttk Labels</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Als nächstes sehen wir uns an, wie wir in unser ttk Label ein <strong>Bild</strong>
<strong>integrieren</strong> können. Hierzu müssen wir zunächst das sogenannte <strong>Pillow-Modul</strong> installieren.</p><p>Wir bewegen uns also in die Projekteinstellungen, indem wir auf „Preferences“ klicken.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1902fb941b0"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29215" alt="Wir klicken auf Preferences" data-id="29215" width="866" data-init-width="1234" height="258" data-init-height="368" title="ttk-label-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-2.png" data-width="866" data-height="258" style="aspect-ratio: auto 1234 / 368;" data-pagespeed-url-hash="4181871166" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-2.png 1234w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-2-300x89.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-2-1024x305.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-2-768x229.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Dann wählen wir das entsprechende Projekt aus und klicken auf "Python Interpreter". Anschließend klicken wir auf das Pluszeichen.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1902fc3d280"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29218" alt="Wir klicken auf Python Interpreter und das Pluszeichen" data-id="29218" width="866" data-init-width="1776" height="270" data-init-height="554" title="ttk-label-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-3.png" data-width="866" data-height="270" style="aspect-ratio: auto 1776 / 554;" data-pagespeed-url-hash="181403791" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-3.png 1776w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-3-300x94.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-3-1024x319.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-3-768x240.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-3-1536x479.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt geben wir oben den Namen "Pillow" ein.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1902fc4c37c"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29219" alt="Wir geben pillow ein und klicken auf install package" data-id="29219" width="866" data-init-width="1838" height="503" data-init-height="1068" title="ttk-label-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-4.png" data-width="866" data-height="503" style="aspect-ratio: auto 1838 / 1068;" data-pagespeed-url-hash="475903712" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-4.png 1838w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-4-300x174.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-4-1024x595.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-4-768x446.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-4-1536x893.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das Modul wird uns vorgeschlagen und wir klicken auf "Install Package". Wie wir sehen, wird das Modul erfolgreich installiert und wir erhalten die Meldung "Package Pillow installed successfully". An dieser Stelle können wir das Fenster schließen und die Änderungen mit OK bestätigen. Damit steht uns das Paket ab sofort in unserem Projekt zur Verfügung.</p><p>Nun fügen wir den folgenden zusätzlichen <strong>Importbefehl</strong> oben in unserem Code ein:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p data-css="tve-u-1902fc5fdd2" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">import tkinter as tk<br></span><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">from tkinter import ttk</span></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"><br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">from PIL import Image, ImageTk</span></strong><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Um jetzt ein Bild in das Label zu integrieren, müssen wir zunächst eine neue Variable definieren, die wir „image“ nennen.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p data-css="tve-u-1902fc5fdd2" style=""><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">image =</span></strong><strong></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Dieser weise ich eines der beiden Bilder zu, die ich bereits in das Projektverzeichnis eingefügt habe. Wie du hier sehen kannst, habe ich einmal unser Logo als PNG-Datei und zusätzlich den YouTube-Banner, den wir auf unserem YouTube-Kanal verwenden:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1902fcf6b3b"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29222" alt="In mein Projektverzeichnis habe ich für das ttk Label zwei Bilder hochgeladen" data-id="29222" width="866" data-init-width="1318" height="230" data-init-height="350" title="ttk-label-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-5.png" data-width="866" data-height="230" style="aspect-ratio: auto 1318 / 350;" data-pagespeed-url-hash="770403633" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-5.png 1318w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-5-300x80.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-5-1024x272.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-5-768x204.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1715931821104">4. Einfügen und Öffnen von Bildern</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Du kannst jedes beliebige Bild einfügen, indem du die Bilddatei in den <strong>Projektordner</strong> ziehst:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1902fd04f37"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29224" alt="Die Bilddatei in den Projektordner ziehen" data-id="29224" width="866" data-init-width="908" height="210" data-init-height="220" title="ttk-label-6" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-6.png" data-width="866" data-height="210" style="aspect-ratio: auto 908 / 220;" data-pagespeed-url-hash="1064903554" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-6.png 908w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-6-300x73.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-6-768x186.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Nachdem die Frage aufgetaucht ist, ob du das wirklich umsetzen möchtest, bestätigst du diese. Daraufhin liegt die Datei zusätzlich in deinem Projektverzeichnis. Das Bild können wir jetzt öffnen, indem wir in unserem Programm die <strong>open-Method</strong><strong>e</strong> von Image aufrufen.</p><p>Dabei müssen wir den <strong>Pfad zum Bild als Argument</strong> an die open-Methode übergeben. Da sich das Bild im gleichen Verzeichnis wie unser Python-Skript befindet, genügt es, den Dateinamen als String anzugeben. Andernfalls müsstest du den relativen oder absoluten Pfad zum Bild angeben.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p data-css="tve-u-1902fc5fdd2" style=""><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><strong>image = Image.open("ps_logo.png") </strong></span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p data-css="tve-u-1902fda0a30" style=""><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important;">Falls du noch Nachholbedarf darin hast, wie man mit Dateien arbeitet, beispielsweise beim Öffnen von Dateien über den relativen oder absoluten Pfad, solltest du dir unseren </span></em><a href="https://programmieren-starten.de/python-lp1/#tve-jump-18733716abf" target="_blank" class="" style="outline: currentcolor;"><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important;">Python-Masterkurs</span></em></a><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important;"> ansehen. Dort haben wir ein eigenes Modul zum Thema „Arbeiten mit Dateien“ integriert, in welchem du dieses Thema ausführlich lernen wirst.</span></em></p></div><div class="thrv_wrapper thrv_text_element">	<p>Mit diesem Code haben wir jetzt Zugriff auf die Bilddatei. Damit wir das <strong>Bild in ein Label</strong> integrieren können, müssen wir die <strong>Klasse</strong>
<strong>ImageTk verwenden </strong>und aus der Bilddatei ein sogenanntes „photo“ erstellen. Hierzu schreiben wir folgenden Code:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p data-css="tve-u-1902fdb3228" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">image = Image.open("ps_logo.png")<br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">photo = ImageTk.PhotoImage(image)</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wir rufen <strong>PhotoImage</strong> auf und übergeben darin die Variable <strong>image</strong>, in der wir die Bilddatei gespeichert haben. Nun können wir das erstellte Foto über ein <strong>Label</strong> in der GUI anzeigen lassen.</p><p>Hierzu erzeugen wir ein ttk Label, wie wir es bereits mit label1 getan haben. Diesmal weisen wir jedoch keinen Text zu, sondern ein Bild. Daher löschen wir die Textzuweisung und weisen stattdessen das eben generierte Foto zu. Das heißt, wir schreiben <em>image=photo</em>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">photo = ImageTk.PhotoImage(image)</span></p><p data-css="tve-u-1902fe185c7" style=""><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">label1 = ttk.Label(root,</strong></span></span><span style="color: rgb(255, 113, 44) !important;"><span style="--tcb-applied-color: rgb(255, 113, 44) !important;"><strong class=""> </strong></span></span><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">image=photo</strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">)</strong></span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, kannst du sehen, dass das Bild in der GUI angezeigt wird.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1902ff458bb"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29230" alt="Das Bild wird nun im ttk Label angezeigt" data-id="29230" width="866" data-init-width="1536" height="335" data-init-height="594" title="ttk-label-7" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-7.png" data-width="866" data-height="335" style="aspect-ratio: auto 1536 / 594;" data-pagespeed-url-hash="1359403475" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-7.png 1536w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-7-300x116.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-7-1024x396.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-7-768x297.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element"><p><em> </em></p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1715931821105">5. Bildgrößenanpassung mit resize</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wie du auch sehen kannst, ist es aktuell <strong>sehr groß</strong>. Das bedeutet, ich müsste das GUI-Fenster vergrößern, um das Bild komplett sehen zu können. Wenn das bei dir auch der Fall sein sollte und du das Bild lieber kleiner hättest, kannst du die sogenannte <strong>resize-Methode</strong> verwenden, die ebenfalls über das <strong>Pillow-Modul</strong> zur Verfügung gestellt wird.</p><p>Wir schließen das Programm also und bewegen uns dann zurück in den Code. Nun rufen wir die resize-Methode auf:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">image = Image.open("ps_logo.png")</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">.resize()</span></strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">photo = ImageTk.PhotoImage(image)</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Dabei müssen wir ein <strong>Tupel</strong> übergeben, das die Breite und Höhe des Bildes angibt. Ich nehme dafür beispielhaft 300 x 100 Pixel.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">image = Image.open("ps_logo.png")</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">.resize(<strong>(300, 100)</strong>)</span></strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">photo = ImageTk.PhotoImage(image)</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm erneut ausführen, sehen wir, dass das Bild nun wesentlich kleiner ist:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-190300648f2"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29235" alt="Dank resize wird das Bild nun kleiner dargestellt" data-id="29235" width="866" data-init-width="1672" height="272" data-init-height="526" title="ttk-label-8" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-8.png" data-width="866" data-height="272" style="aspect-ratio: auto 1672 / 526;" data-pagespeed-url-hash="1653903396" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-8.png 1672w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-8-300x94.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-8-1024x322.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-8-768x242.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-8-1536x483.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1715931821106">6. Dynamische Bildänderung</h2></div><div class="thrv_wrapper thrv_text_element"><p>Der Vorteil dabei ist, dass wir das Bild auch zu einem <strong>späteren Zeitpunkt</strong> noch verändern können, indem wir entweder die <strong>configure-Methode</strong> verwenden oder als weitere Möglichkeit über den <strong>Schlüssel</strong> „image“ einfach ein neues Foto zuweisen.</p><p>Dazu müssen wir natürlich zunächst wieder ein neues Foto erzeugen. Hierzu kopieren wir einfach die beiden zuletzt geschriebenen Zeilen und fügen sie direkt darunter ein. Die Variable nenne ich beispielhaft <strong><em>image2</em></strong> und das Foto <strong><em>photo2</em></strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">image = Image.open("ps_logo.png").resize((300, 100))</span><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><br></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">photo = ImageTk.PhotoImage(image)</span></span></p><p><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong> </strong><strong>image2 = Image.open("ps_logo.png").resize((300, 100))</strong></span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">photo2 = ImageTk.PhotoImage(image)</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt werden wir eine andere Bilddatei öffnen, in meinem Fall den YouTube-Banner, den ich ebenfalls bereits zum Projekt hinzugefügt habe.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-19030087d46">image = Image.open("ps_logo.png").resize((300, 100))</span><span style="color: var(--tcb-skin-color-5) !important;" data-css="tve-u-19030087d48"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;" data-css="tve-u-19030087d49"><br>photo = ImageTk.PhotoImage(image)</span></span></p><p><span style="color: var(--tcb-color-1) !important;" data-css="tve-u-19030087d4a"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;" data-css="tve-u-19030087d4b"><strong> </strong><strong class="">image2 = Image.open(</strong></span></span><span style="color: var(--tcb-color-2) !important;" data-css="tve-u-19030087d4c"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;" data-css="tve-u-19030087d4d"><strong class="">"youtube_banner.png"</strong></span></span><span style="color: var(--tcb-color-1) !important;" data-css="tve-u-19030087d4f"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;" data-css="tve-u-19030087d50"><strong class="">).resize((300, 100))</strong></span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-19030087d51">photo2 = ImageTk.PhotoImage(image)</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Damit haben wir jetzt zwei Fotos von zwei unterschiedlichen Bildern. Aktuell hat das Label das erste Foto, nämlich unser Logo. Jetzt möchten wir den Banner zu einem <strong>späteren Zeitpunkt </strong>diesem <strong>Label zuweisen</strong>. Das werden wir über die sogenannte Schlüssel-Schreibweise umsetzen. Wir schreiben also label1, öffnen ein eckiges Klammerpaar, schreiben image hinein und setzen es gleich photo2:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">label1.pack()</span></p><p data-css="tve-u-19030094097" style=""><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1["image"] = photo2</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, sehen wir, dass nicht mehr das Logo angezeigt wird, sondern der entsprechende <strong>Banner</strong>.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1715931821107">7. Optionen mit der Schlüsselschreibweise ändern</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Du kannst übrigens alle Optionen, die du als Schlüsselwort-Argumente bei der Objekterzeugung eines Widgets setzt, auch mit der <strong>Schlüssel-Schreibweise ändern</strong>. Demnach könntest du also auch den Text eines Labels ändern, indem du anstelle von „image“ die Option „text“ schreibst und dann einen entsprechenden String zuweist, wie beispielsweise "Das ist ein Text":</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong> </strong><strong>label1["text"] = "Das ist ein Text"</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Du hast damit insgesamt <strong>drei Möglichkeiten</strong>, Optionen zu setzen:</p><p>1. Direkt bei der Objekterzeugung, indem du die Optionen als Schlüsselwort-Argumente setzt.<br>2. Über die Schlüssel-Schreibweise, wie gerade gezeigt.<br>3. Indem du die configure-Methode verwendest, die du bereits kennengelernt hast.</p><p><strong> </strong>Bei dieser müssten wir folgendes schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p style="" data-css="tve-u-190300e2d77"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1["text"] = "Das ist ein Text"<br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1.configure(text="Das ist ein Text")</span></strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Das sind alles drei valide alternative Möglichkeiten, die ich dir zeige, damit du sie einmal gesehen hast, denn jeder setzt das in seinem Programm etwas anders um. Du solltest alle drei Wege kennen, da <strong>jeder Weg zum gleichen Ziel führt</strong>. Das wird besonders interessant, wenn wir noch <strong>andere Widgets </strong>wie zum Beispiel <strong>Buttons</strong> in unsere GUIs einbauen. Dann können wir beispielsweise sagen, dass der <strong>Text geändert</strong> wird, wenn man den <strong>Button klickt</strong>. Allerdings werden wir uns das später noch ansehen, weshalb ich den Code wieder entferne:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="text-decoration: line-through; --tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">label1["text"] = "Das ist ein Text"</span><span style="text-decoration: line-through;"><br></span><strong><span style="text-decoration: line-through; --tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">label1.configure(text="Das ist ein Text")</span></strong><span style="text-decoration: line-through;"><strong> </strong></span></p><p><strong><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">…</span></strong></p><p><span style="text-decoration: line-through; --tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">image2 = Image.open("youtube_banner.png").resize((300, 100))</span><span style="text-decoration: line-through;"><br></span><span style="text-decoration: line-through; --tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">photo2 = ImageTk.PhotoImage(image)</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1717163257968">8. Text und Bild im ttk Label kombinieren</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt wissen wir also, dass wir über unser Label-Widget sowohl normalen Text als auch Bilder darstellen können. Darüber hinaus können wir aber auch innerhalb eines Label-Widgets <strong>Bild und Text miteinander vereinen</strong> und damit beides gleichzeitig darstellen.</p><p>Hierzu kannst du bei der Erzeugung des Label-Widgets zusätzlich zum „image“ auch das <strong>text-Schlüsselwort-Argument</strong> übergeben. Das heißt, wir können im Code noch folgendes ergänzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">photo = ImageTk.PhotoImage(image)</span></p><p><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">label1 = ttk.Label(root, </strong></span></span><span style="color: var(--tcb-color-2) !important;"><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class="">text="Das ist unser Logo"</strong></span></span><span style="color: var(--tcb-color-1) !important;"><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">,image=photo)</strong></span></span><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm an dieser Stelle ausführen, sehen wir, dass nach wie vor <strong>nur das Bild</strong>
<strong>angezeigt</strong> wird. Von dem Text, den wir als Schlüsselwort-Argument übergeben haben, fehlt allerdings jede Spur.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1717163257969">9. Die compound-Option nutzen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Das liegt daran, dass beim gleichzeitigen Einfügen von Text und Bild in ein Label, beides nur dann angezeigt wird, wenn zusätzlich auch ein <strong>Wert für die Option „compound“ gesetzt </strong>wird. Über diese Option können wir dem Label-Widget mitteilen, wie es das Bild in Kombination mit dem Text darstellen soll. Wir müssen also noch zusätzlich beispielsweise&nbsp;<em>compound="right" </em>angeben, was für <em>rechts</em> steht:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>label1 = ttk.Label(root, text="Das ist unser Logo",image=photo, <span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">compound="right"</span>)</strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt noch einmal ausführen, sehen wir, dass das Bild nun rechts vom Text angezeigt wird und beides sichtbar ist:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-190307c7fe4"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29248" alt="Das Bild wird nun rechts vom Text auf unserem ttk Label angezeigt" data-id="29248" width="866" data-init-width="1462" height="270" data-init-height="456" title="ttk-label-9" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-9.png" data-width="866" data-height="270" style="aspect-ratio: auto 1462 / 456;" data-pagespeed-url-hash="1948403317" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-9.png 1462w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-9-300x94.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-9-1024x319.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-9-768x240.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Genauso könnten wir jetzt auch festlegen, dass das Bild <strong>über dem Text</strong> angezeigt werden soll. Dazu geben wir bei compound <strong>„top“ </strong>an:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>label1 = ttk.Label(root, text="Das ist unser Logo",image=photo, compound=<span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">"top"</span>)</strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt wird das Bild über dem Text angezeigt:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19030d254d9"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29250" alt="Das Bild wird nun über dem Text angezeigt" data-id="29250" width="866" data-init-width="1150" height="301" data-init-height="400" title="ttk-label-10" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-10.png" data-width="866" data-height="301" style="aspect-ratio: auto 1150 / 400;" data-pagespeed-url-hash="2880153345" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-10.png 1150w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-10-300x104.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-10-1024x356.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-10-768x267.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wir können aber auch bestimmen, dass es links davon angezeigt werden soll, indem wir „left“ angeben. Wenn wir „bottom“ verwenden, wird das Bild unter dem Text angezeigt und auch „center“ steht uns zur Auswahl:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>label1 = ttk.Label(root, text="Das ist unser Logo",image=photo, compound=<span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">"center"</span>)</strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm so ausführen, wird das Bild mittig dargestellt und der Text liegt darüber:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19030d46d24"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29252" alt="Der Text liegt nun auf dem Bild vom ttk Label" data-id="29252" width="866" data-init-width="1692" height="260" data-init-height="508" title="ttk-label-11" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-11.png" data-width="866" data-height="260" style="aspect-ratio: auto 1692 / 508;" data-pagespeed-url-hash="3174653266" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-11.png 1692w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-11-300x90.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-11-1024x307.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-11-768x231.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-11-1536x461.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1717163257970">10. ttk Label Optionen ändern</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Damit weißt du jetzt, wie man in Label-Widgets auch Bilder integrieren kann. Zudem hast du gelernt, dass man sowohl Bilder als auch den Text und alle anderen Optionen, die man bei der Widget-Objekterzeugung als Schlüsselwort-Argumente setzt, <strong>nachträglich verändern kann</strong>. Nämlich entweder über die configure-Methode oder über den entsprechenden Schlüssel.</p><p>Bei der Methode mit dem Schlüssel würde man beispielsweise folgendes schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-19030f38bce"><strong>label1["text"] = "…"</strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wir geben damit zwischen den eckigen Klammern den <strong>Schlüssel</strong> an und weisen einen String zu.</p><p>Wenn man ein <strong>Bild ändern</strong> möchte, gibt man nicht den Schlüssel “text“ an, sondern “image“. Diese Schlüssel-Schreibweise zeigt, dass die zahlreichen Optionen, die man bei den einzelnen Widgets setzen kann, als <strong>Key-Value-Paare </strong>hinterlegt sind. Wenn wir also wissen möchten, welche Optionen uns für ein Widget zur Verfügung stehen, dann können wir das ganz einfach mit Hilfe der <strong>keys-Methode</strong> ermitteln, die man im Übrigen ausführlich im Python-Masterkurs kennenlernt, der als Grundlage für den Python-Tkinter-Masterkurs dient.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1718783367643">11. Verfügbare Optionen ermitteln</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir rufen im Code also die keys-Methode auf:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-19030f4c75b"><strong>print(label1.keys())</strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir den Code jetzt ausführen, siehst du, dass uns alle möglichen Optionen sauber in der Konsole ausgegeben werden:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19030f5a13a"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29258" alt="Die Optionen werden uns in der Konsole angezeigt" data-id="29258" width="866" data-init-width="1900" height="128" data-init-height="280" title="ttk-label-12" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-12.png" data-width="866" data-height="128" style="aspect-ratio: auto 1900 / 280;" data-pagespeed-url-hash="3469153187" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-12.png 1900w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-12-300x44.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-12-1024x151.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-12-768x113.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-12-1536x226.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Mit folgendem Code können wir die Ausgabe noch konkretisieren, sodass wir auch sehen, welche Optionen aktuell mit welchem Wert belegt sind:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-1903b27d95e">label1.pack()</span></p><p><strong> </strong></p><p data-css="tve-u-19030f6d4e8"><strong><span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;" data-css="tve-u-1903b27d960">for</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-1903b27d961"> item </span><span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;" data-css="tve-u-1903b27d962">in</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-1903b27d963"> label1.keys():</span></strong><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-1903b27d964">&nbsp; &nbsp; print(item, ": ", label1[item])</span></strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm so ausführen, sehen wir wie gerade eben die Optionen, die ein ttk Label besitzt, allerdings werden uns jetzt zudem die aktuellen Werte dieser Optionen ausgegeben:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19030f7916f"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29262" alt="Nun werden uns auch die Werte der Optionen angezeigt" data-id="29262" width="866" data-init-width="1610" height="193" data-init-height="358" title="ttk-label-13" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-13.png" data-width="866" data-height="193" style="aspect-ratio: auto 1610 / 358;" data-pagespeed-url-hash="3763653108" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-13.png 1610w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-13-300x67.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-13-1024x228.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-13-768x171.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-13-1536x342.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Bei „text“ sehen &nbsp;wir zum Beispiel "Das ist unser Logo", weil wir das oben so festgelegt haben. Bei „image“ haben wir das entsprechende Bild hinterlegt, „compound“ haben wir aktuell auf „center“ gesetzt, und so weiter. Das wird uns jetzt alles <strong>übersichtlich</strong> dargestellt.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1718783367644">12. Padding bei ttk Labels</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Immer wenn du bei einem beliebigen Widget in Zukunft wissen möchtest, <strong>welche Optionen</strong> überhaupt gesetzt werden können, kannst du dir mit diesem Trick ganz einfach Abhilfe schaffen und dir alle Optionen anzeigen lassen.</p><p>Angenommen, wir möchten beispielsweise die Option „<strong>padding</strong>“ mit dem Wert 50 setzen, dann können wir bei der Objekterzeugung des Label-Widgets einfach zusätzlich „padding“ folgendermaßen ergänzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331"><p data-css="tve-u-19030f95fee" style=""><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-19030fc3ceb">label1 = ttk.Label(root, text="Das ist unser Logo",image=photo, compound="center", </span><span data-css="tve-u-19030fc3ceb" style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">padding=50</span><span data-css="tve-u-19030fc3ceb" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></strong><br><span data-css="tve-u-19030fc3cec" style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Beim Ausführen des Programms sehen wir, dass das Padding gesetzt wurde:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19030fa7a3a"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29267" alt="Das Padding wurde auf unserem ttk Label gesetzt" data-id="29267" width="866" data-init-width="1830" height="276" data-init-height="584" title="ttk-label-14" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-14.png" data-width="866" data-height="276" style="aspect-ratio: auto 1830 / 584;" data-pagespeed-url-hash="4058153029" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-14.png 1830w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-14-300x96.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-14-1024x327.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-14-768x245.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-14-1536x490.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Dadurch haben wir <strong>zu jeder Seite</strong> einen <strong>Abstand von 50 Pixeln</strong> hinzugefügt, sodass der Text nicht direkt am Rand angezeigt wird. Wenn wir das Padding auf 5 setzen, scheint es etwas zu nah am Rand zu sitzen. Bei 50 ist der Text weiter vom Rand entfernt. Wir sehen das Padding zum einen in der GUI und zum anderen auch in der Konsole, da wir uns dort die Werte ausgeben lassen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19030fb8a4f"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29270" alt="In der Konsole sehen wir den Wert den wir für padding gesetzt haben" data-id="29270" width="866" data-init-width="1652" height="150" data-init-height="286" title="ttk-label-15" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-15.png" data-width="866" data-height="150" style="aspect-ratio: auto 1652 / 286;" data-pagespeed-url-hash="57685654" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-15.png 1652w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-15-300x52.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-15-1024x177.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-15-768x133.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-15-1536x266.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Die Klasse Label arbeitet so, dass das Padding <strong>intern</strong> hinterlegt wird. Auch wenn die Ausgabe etwas kryptisch aussieht, erkennen wir, dass es dort gesetzt wurde.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1718783367645">13. Die Schriftart ändern</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir könnten uns noch weitere Optionen ansehen und diese ändern. Zum Beispiel gibt es die Option „<strong>font</strong>“, mit der wir die für den Label-Text verwendete Schriftart ändern können, indem wir ihr einen entsprechenden Wert zuweisen. Das können wir bei der <strong>Objekterzeugung</strong> oder nachträglich mit der <strong>configure-Methode</strong> umsetzen.</p><p>Dabei übergeben wir ein <strong>Tupel</strong>, in dem der erste Wert die gewünschte <strong>Schriftart als String</strong> angibt. Wir wählen dafür nun beispielhaft Arial:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331"><p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-19030fcef90"><strong>label1.configure(font=("Arial"))</strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Damit die Schrift direkt über dem Bild angezeigt wird, geben wir bei compound „top“ an:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331"><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>label1 = ttk.Label(root, text="Das ist unser Logo",image=photo, <span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">compound="top"</span>, padding=50)</strong><br><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm nun ausführen, sehen wir den Text in der Schriftart Arial:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19039cfdfd1"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29276" alt="Der Text des ttk Labels hat die Schriftart Arial" data-id="29276" width="866" data-init-width="1628" height="311" data-init-height="584" title="ttk-label-16" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-16.png" data-width="866" data-height="311" style="aspect-ratio: auto 1628 / 584;" data-pagespeed-url-hash="352185575" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-16.png 1628w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-16-300x108.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-16-1024x367.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-16-768x275.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-16-1536x551.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>An dieser Stelle könnten wir auch eine andere Schriftart wie beispielsweise Courier verwenden:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331"><p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-19030fcef90"><strong>label1.configure(font=("Courier"))</strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wie man eindeutig erkennt, hat sich die Schriftart tatsächlich geändert:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19039d1cf72"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29279" alt="Der Text des ttk Labels hat die Schriftart Courier" data-id="29279" width="866" data-init-width="1682" height="275" data-init-height="534" title="ttk-label-17" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-17.png" data-width="866" data-height="275" style="aspect-ratio: auto 1682 / 534;" data-pagespeed-url-hash="646685496" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-17.png 1682w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-17-300x95.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-17-1024x325.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-17-768x244.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-17-1536x488.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wichtig ist, dass man nur Schriftarten setzen kann, die auch auf dem <strong>eigenen System verfügbar</strong> sind. Darüber hinaus lässt sich auch die gewünschte <strong>Schriftgröße</strong> angeben. Hierzu fügt man innerhalb des Tupels noch ein Komma hinzu und kann dann die gewünschte Größe als Zahl angeben. Ich gebe jetzt zum Beispiel einmal 30 an:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331"><p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-19039d4f215"><strong>label1.configure(font=("Courier"<strong><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">, 30</span></strong>))</strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Führen wir das Programm nun aus, sehen wir, dass die Schriftart jetzt natürlich wesentlich größer ist:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-19039d5abb8"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29283" alt="Die Schriftart ist nun größer" data-id="29283" width="866" data-init-width="1584" height="264" data-init-height="482" title="ttk-label-18" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-18.png" data-width="866" data-height="264" style="aspect-ratio: auto 1584 / 482;" data-pagespeed-url-hash="941185417" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-18.png 1584w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-18-300x91.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-18-1024x312.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-18-768x234.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-18-1536x467.png 1536w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1718783367646">14. Der Einfluss von Themes auf das ttk Label</h2></div><div class="thrv_wrapper thrv_text_element"><p>Ich denke, du hast gesehen, dass man mit diesen Optionen einiges anstellen kann. Wie du vielleicht schon gemerkt hast, handelt es sich bei diesen ganzen Änderungen um <strong>designtechnische</strong> Aspekte.</p><blockquote class="">Im Beitrag zuvor hatte ich erwähnt, dass das <strong>Design</strong> bei den TTK-Widgets von den <strong>funktionalen</strong> Aspekten weitestgehend <strong>entkoppelt</strong> sein sollte. Das ist zumindest der Hauptgrund, weshalb die TTK-Widgets überhaupt eingeführt wurden.</blockquote><p>Wie wir sehen, kann man die designtechnischen Aspekte auch bei den TTK-Widgets direkt über Optionen setzen. Allerdings funktioniert das auch über eine sogenannte <strong>Style-Klasse</strong>. Die Option „style“, der man den entsprechenden Style zuweisen kann, wird uns auf der Konsole weiter unten ausgegeben.</p><p style="color: rgb(0, 21, 122) !important; --tcb-applied-color: rgb(0, 21, 122) !important;"><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important;">Wie wir eine entsprechende Style-Klasse zuweisen und wie das alles im Detail funktioniert, wirst du umfassend im </span></em><a href="https://programmieren-starten.de/tkinter-lp1/" target="_blank" class="" style="outline: currentcolor;"><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important;">Python-Tkinter-Masterkurs</span></em></a><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important;"> lernen. Denn dort haben wir ein eigenes Modul integriert, das nur auf das Thema Styling eingeht. Sollte dir diese Tutorial-Reihe also bereits dabei helfen, Tkinter besser zu verstehen, dann solltest du dir unbedingt den Python-Tkinter-Masterkurs ansehen. In diesem werden wir tief in die Materie eintauchen und zahlreiche Praxisprojekte gemeinsam von Grund auf programmieren. Dazu gehören ein Bitcoin-Preisrechner, ein Nachrichtenverschlüsselungsprogramm, eine To-Do-Listen-App und vieles mehr.</span></em></p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1718783367647">15. Die Besonderheit der background-Option</h2></div><div class="thrv_wrapper thrv_text_element">	<p>An dieser Stelle weißt du also, wie du ein TTK-Label-Widget erzeugen und die unterschiedlichen Optionen dieses Objekts setzen kannst, um beispielsweise ein Bild, einen Text und gewisse <strong>designtechnische Aspekte umzusetzen</strong>.</p><p>Jetzt möchte ich dich noch auf eine Option hinweisen, die Einsteiger oftmals verwirrt. Angenommen, du wirfst in der Konsole weiter einen Blick auf die Auflistung, um herauszufinden, welche Optionen es noch gibt. Direkt am Anfang siehst du dann den Punkt „<strong>background</strong>“.</p><p>Die Hintergrundfarbe von normalen TK-Label-Widgets hatten wir bereits zuvor schon mal geändert. Beim Anblick von „background“ könntest du nun möglicherweise denken, dass diese Option bei TTK-Label-Widgets nicht „bg“, sondern „background“ heißt.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1718783367648">16. Die Hintergrundfarbe und das Theme anpassen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Dadurch könntest du auf die Idee kommen, den Hintergrund des Labels beispielsweise auf Rot anzupassen. Das würdest du entweder nachträglich über die „configure“-Methode tun oder direkt bei der Objekterzeugung. Für welche Vorgehensweise du dich dabei entscheidest, spielt keine Rolle. Beispielsweise würdest du demnach folgendes schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331"><p style="" data-css="tve-u-19039f2a1ef"><strong>label1.configure(background="red")</strong></p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn du das Programm jetzt so ausführst, wirst du eventuell feststellen, dass die <strong>Farbe Rot</strong>
<strong>nicht</strong>
<strong>übernommen</strong> wird.</p><p>Wieso sage ich eventuell? Weil es darauf ankommt, welches <strong>Theme</strong>
<strong>standardmäßig bei dir verwendet</strong> wird. Ich arbeite gerade auf einem Mac, und dort wird standardmäßig, wenn ich das Theme nicht explizit setze, das Theme mit dem Namen <strong>Aqua</strong> verwendet. Dieses spezielle Theme hat die Besonderheit, dass es die Änderung der Hintergrundfarbe bei einem Label-Widget <strong>nicht zuläss</strong>t. Deshalb sehe ich die Änderung hier jetzt auch nicht.</p><p>Aus diesem Grund <strong>ändere</strong> ich nun mit zwei Zeilen Code das <strong>Theme</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66702f0ab7f321" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66702f0ab7f331"><p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.geometry("400x400")</span></p><p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">style = ttk.Style() &nbsp;</span></strong><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"></span></strong><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">style.theme_use("clam")</span></strong></p><p style="" data-css="tve-u-1903a02057d"><strong> </strong>image = Image.open("ps_logo.png").resize((300, 100))</p><strong class=""> </strong></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Diese beiden Zeilen Code werden im Detail im Python-Tkinter-Masterkurs erklärt. Grob gesagt, <strong>initialisieren</strong> wir mit der ersten Zeile die <strong>Style-Datenbank </strong>und ändern mit der zweiten Zeile das Theme entsprechend, indem wir den <strong>Namen des gewünschten Themes angeben</strong>. Du musst allerdings noch nicht verstehen, was an dieser Stelle genau passiert. Ich möchte dir nur zeigen, dass beim Ausführen des Programms die Hintergrundfarbe des Labels nun tatsächlich auf Rot gesetzt ist:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1903a02bb47"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29291" alt="Der Hintergrund des ttk Labels ist nun tatsächlich rot" data-id="29291" width="866" data-init-width="1330" height="254" data-init-height="390" title="ttk-label-19" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-19.png" data-width="866" data-height="254" style="aspect-ratio: auto 1330 / 390;" data-pagespeed-url-hash="1235685338" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-19.png 1330w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-19-300x88.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-19-1024x300.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/ttk-label-19-768x225.png 768w" sizes="auto, (max-width: 866px) 100vw, 866px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66702f0ab7f371" id="t-1718783367649">17. Einschränkungen durch Themes</h2></div><div class="thrv_wrapper thrv_text_element"><blockquote class="">Es gibt also sogenannte <strong>Themes</strong> und wenn du mit <strong>TTK-Widgets</strong> arbeitest, ist <strong>standardmäßig eines gesetzt</strong>. Welches gesetzt ist, hängt davon ab, auf welchem <strong>Betriebssystem</strong> du aktuell arbeitest.</blockquote><p>Bei manchen Themes funktionieren bestimmte <strong>Optionen</strong>, die wir bei den Widgets setzen können, <strong>nicht</strong>. Diese werden durch das Theme blockiert. Wichtig ist, das bereits vorneweg zu wissen, um nicht daran zu verzweifeln, dass sich die Hintergrundfarbe nicht verändern lässt. Das hängt dann in der Regel mit den Themes zusammen.</p><p>Bis hierher ist also nur wichtig zu verstehen, wie du TTK Label Widgets <strong>erzeugst</strong> und wie du den Großteil der Optionen setzen kannst. Wir sehen in unserer Konsole beispielsweise auch noch die Option „textvariable“. Diese ist ebenfalls sehr wichtig und wird im <strong>nächsten Beitrag</strong> im Detail erklärt.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-66702f0ab7f3f9" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-66702f0ab7f417"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-66702f0ab7f429" style=""><div class="tcb-flex-col" data-css="tve-u-66702f0ab7f437" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-66702f0ab7f457" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tk-widgets/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-66702f0ab7f465" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-191ff7f6705" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-stringvar/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/ttk-label/">Python Tkinter Tutorial #7 &#8211; Das ttk Label Widget</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #6 &#8211; tk Widgets vs. ttk Widgets</title>
		<link>https://www.programmieren-starten.de/blog/tk-widgets/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 14:14:02 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=29155</guid>

					<description><![CDATA[<p>In diesem Beitrag werden wir uns den Unterschied zwischen den tk Widgets und den ttk Widgets im Detail ansehen. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Warum Label Widgets allein nicht reichen2. Ein Label Widget erzeugen3. Was sind tk Widgets?4. Was sind ttk Widgets?5. Erzeugen eines ttk Label Widgets6. Fehlermeldung bei ttk Label Widgets7. Style-Klassen8. Vorteile der Style-Klassen9. Vorteile [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tk-widgets/">Python Tkinter Tutorial #6 &#8211; tk Widgets vs. ttk Widgets</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>In diesem Beitrag werden wir uns den Unterschied zwischen den <strong>tk Widgets</strong> und den <strong>ttk Widgets</strong> im Detail ansehen.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=rJCNRmWcXhQ&amp;t=303s&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-66631e60459cc4" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #6 - ttk Widgets vs. tk Widgets" class="tcb-responsive-video" data-code="rJCNRmWcXhQ" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="147834431" data-src="https://www.youtube-nocookie.com/embed/rJCNRmWcXhQ?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-66631e60459d51" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-66631e60459d84">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Warum Label Widgets allein nicht reichen</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Ein Label Widget erzeugen</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Was sind tk Widgets?</a></div><div class="tve_ct_level1"><a href="#t-1715931821104" rel="nofollow">4. Was sind ttk Widgets?</a></div><div class="tve_ct_level1"><a href="#t-1715931821105" rel="nofollow">5. Erzeugen eines ttk Label Widgets</a></div><div class="tve_ct_level1"><a href="#t-1715931821106" rel="nofollow">6. Fehlermeldung bei ttk Label Widgets</a></div><div class="tve_ct_level1"><a href="#t-1715931821107" rel="nofollow">7. Style-Klassen</a></div><div class="tve_ct_level1"><a href="#t-1717163257968" rel="nofollow">8. Vorteile der Style-Klassen</a></div><div class="tve_ct_level1"><a href="#t-1717163257969" rel="nofollow">9. Vorteile der ttk Widgets</a></div><div class="tve_ct_level1"><a href="#t-1717163257970" rel="nofollow">10. Fazit</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459d93" id="tab-con-10">1. Warum Label Widgets allein nicht reichen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Im früheren Verlauf dieser Tutorial-Reihe haben wir bisher nur mit einer Art von Widget gearbeitet, nämlich mit <strong>Labels</strong>. Allerdings kann man mit Labels allein noch <strong>keine</strong> wirklich <strong>sinnvollen Anwendungen</strong> programmieren.<em> </em></p><p>Genau deshalb werden wir uns in den kommenden Beiträgen auch noch weitere Widgets ansehen. Mit Kenntnis über diese Widgets können wir dann auch schon unsere ersten Anwendungen bauen und ab dann fängt die <strong>Programmierung mit Python und Tkinter</strong> so richtig an, <strong>Spaß</strong> zu machen.</p><p>Zuvor muss ich dir allerdings in diesem Blogartikel noch etwas sehr Wichtiges erklären: den <strong>Unterschied</strong> zwischen den sogenannten <strong>tk Widgets und den ttk Widgets</strong>.<em> </em></p><p>Das werde ich dir anhand eines kleinen Beispiels mit einem Label Widget zeigen, da wir dieses bereits kennen.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459d93" id="t-1688547294220">2. Ein Label Widget erzeugen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Das Python File, in welchem wir starten, sieht aktuell folgendermaßen aus:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-190021cfbb7"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29163" alt="tk Widgets: So sieht das Python File zu Beginn aus" data-id="29163" width="742" data-init-width="1546" height="207" data-init-height="432" title="tk-widgets-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tk-widgets-1.png" data-width="742" data-height="207" style="aspect-ratio: auto 1546 / 432;" data-pagespeed-url-hash="1385703420" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tk-widgets-1.png 1546w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tk-widgets-1-300x84.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tk-widgets-1-1024x286.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tk-widgets-1-768x215.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tk-widgets-1-1536x429.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Bisher haben wir im Verlauf des Kurses Label Widgets erzeugt, indem wir eine <strong>Variable</strong> definiert und dieser ein <strong>Label-Objekt </strong>zugewiesen haben.</p><p><em> </em>Genau das setzen wir jetzt beispielhaft um. Der Text soll dabei 'Label 1' lauten und zudem vergeben wir einen <strong>Hintergrund</strong> in der Farbe <strong>Grün</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66631e60459de0" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66631e60459e08">	<p data-css="tve-u-190022bb36e" style=""><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1 = tk.Label(root, text="Label 1", bg="green")</span></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong>root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Anschließend müssen wir das Ganze mithilfe des Pack Layout Managers noch in die GUI packen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66631e60459de0" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66631e60459e08">	<p data-css="tve-u-190022ede3c" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1 = tk.Label(root, text="Label 1", bg="green")</span><span style="text-decoration: underline; --tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"><br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"></span></strong><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1.pack()</span></strong></p><p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;"><strong> </strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>In anderen Worten haben wir beim Erzeugen eines Labels im Namensraum von Tkinter ein <strong>Objekt der Klasse Label</strong> erzeugt.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1689865778143">3. Was sind tk Widgets?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir ein <strong>Label</strong> Widget auf diese Art und Weise erzeugen, handelt es sich dabei um ein normales <strong>tk Widget</strong>.<em> </em>Das sind die Widgets, die Tkinter bereits von Anfang an zur Verfügung gestellt hat<em>. </em>Im Laufe der Zeit hat sich Tkinter allerdings weiterentwickelt, wodurch vor einigen Jahren die sogenannten <em><strong>ttk Widgets</strong></em> hinzukamen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1715931821104">4. Was sind ttk Widgets?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Die Grundidee für die ttk Widgets besteht darin, dass man den Code, der das <strong>Verhalten</strong> eines Widgets implementiert, so <strong>weit wie möglich vom Code trennt</strong>, der sein <strong>Erscheinungsbild</strong> implementiert.<em> </em>Das klingt erst mal kompliziert, aber wir können uns das ganz einfach am aktuellen Beispiel bewusst machen.</p><p>Darin haben wir gerade ein tk Label erzeugt, das den Text „Label 1“ anzeigt.<em> </em>Warum ist das so<em>? </em>Weil wir in unserer Zeile Code als Text den String „Label 1“ zugewiesen haben. Darüber hinaus haben wir<em> </em>darin die Hintergrundfarbe des Labels mit der Zeile bg=“green“ festgelegt<em>. </em></p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1715931821105">5. Erzeugen eines ttk Label Widgets</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Die Grundidee der neueren ttk Widgets besteht wie bereits gesagt darin, dass man den Code, der das <strong>Verhalten</strong> eines Widgets implementiert, so weit wie möglich vom Code <strong>trennt</strong>, der sein <strong>Erscheinungsbild</strong> implementiert.<em> </em></p><p>Die <strong>Hintergrundfarbe</strong> des Label Widgets ändert offensichtlich das <strong>Erscheinungsbild</strong>.<em> </em>Sie hat also <strong>keine funktionale Wirkung</strong>, sondern nur Einfluss auf die <strong>Optik</strong>.<em> </em>Bei ttk Widgets wird das jetzt voneinander getrennt bzw. hat man die Möglichkeit, es voneinander zu trennen.<em> </em>Man muss es also nicht zwangsläufig tun, kann dies aber.<em> </em></p><p>Das bedeutet, dass wir bei den ttk Widgets, um das Aussehen eines Widgets zu verändern, die Details <strong>nicht</strong> mehr <strong>über die Optionen</strong> setzen müssen, was wir bisher bei den normalen tk Widgets mit den Schlüsselwortargumenten getan haben. Stattdessen können wir das in einem separaten Schritt mithilfe sogenannter <strong>Style-</strong><strong>Klassen</strong> umsetzen, die wir den entsprechenden Widgets zuweisen.</p><p>An dieser Stelle erzeugen wir uns ein zweites Label Widget. Allerdings nicht das normale tk Label Widget wie gerade eben, sondern das <strong>ttk Label Widget</strong>. Hierzu müssen wir zunächst einen weiteren Import-Befehl angeben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66631e60459de0" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66631e60459e08">	<p data-css="tve-u-1900234d190" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">import tkinter as tk</span><br><strong><span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;">from</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"> tkinter </span><span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;">import</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"> ttk</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Sobald wir diesen Import-Befehl in unser Programm gesetzt haben, bietet sich uns zusätzlich die Möglichkeit, die <strong>neueren ttk Widgets zu verwenden.</strong></p>&nbsp;Davon erzeugen wir uns nun folgendermaßen ein zweites Label Widget:</div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66631e60459de0" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66631e60459e08">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p style="" data-css="tve-u-190023ba972"><strong>label2 = ttk.Label(root, text="Label 2", bg="red")</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Um dieses Widget sichtbar zu machen, packen wir es ebenfalls in die GUI<em>.</em></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66631e60459de0" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66631e60459e08">	<p data-css="tve-u-190023ba972" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-190024fb22c">label2 = ttk.Label(root, text="Label 2", bg="red")<br></span><strong></strong><strong>label2.pack()</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1715931821106">6. Fehlermeldungen bei ttk Label Widgets</h2></div><div class="thrv_wrapper thrv_text_element"><p>Wie du siehst, besteht der einzige Unterschied zum normalen tk Widget im aktuellen Code darin, dass wir „ttk.Label“ schreiben anstatt „tk.Label“.</p><p><em> </em>Wenn wir das Programm jetzt ausführen, erhalten wir allerdings eine Fehlermeldung: "Unknown option 'bg'". Das bedeutet, dass das <strong>ttk Label Widget&nbsp;</strong><strong>nicht die Option 'bg'</strong>
<strong>kennt</strong>, um die Hintergrundfarbe zu setzen, was wir in diesem Fall mit dem Argument bg="red" versucht haben.<em> </em></p><blockquote class="">Die ttk Label Widgets stellen also <strong>nicht die exakt gleichen Optionen</strong> bereit wie die tk Label Widgets.</blockquote><p>Aus diesem Grund <strong>löschen</strong> wir das <strong>Schlüsselwortargument</strong>, mit dem wir die <strong>Hintergrundfarbe</strong> modifizieren möchten, für dieses Beispiel einfach noch mal heraus.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-66631e60459de0" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-66631e60459e08">	<p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>label2 = ttk.Label(root, text="Label 2"<span style="text-decoration: line-through; --tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;" data-css="tve-u-1900251481d">, bg="red"</span>)</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt erneut ausführen, sehen wir, dass es durchläuft und das Ganze funktioniert:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-1900298573b"><span class="tve_image_frame"><img decoding="async" class="tve_image tcb-moved-image wp-image-30025" alt="tk Widgets: Das Programm läuft nun durch" data-id="30025" width="740" data-init-width="1574" height="150" data-init-height="320" title="tk-widgets-2-sharp" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tk-widgets-2-sharp.png" data-width="740" data-height="150" style="aspect-ratio: auto 1574 / 320;" data-pagespeed-url-hash="1680203341" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-css="tve-u-191fb2aa10a" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tk-widgets-2-sharp.png 1574w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tk-widgets-2-sharp-300x61.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tk-widgets-2-sharp-1024x208.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tk-widgets-2-sharp-768x156.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tk-widgets-2-sharp-1536x312.png 1536w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wir haben nach wie vor die Möglichkeit, die Hintergrundfarbe des ttk Labels zu verändern, allerdings geschieht das auf eine andere Art und Weise.<em>&nbsp;</em>Dafür existieren nämlich <strong>andere Optionen innerhalb des ttk-Labels.</strong> Das werden wir im nächsten Beitrag sehen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1715931821107">7. Style-Klassen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Zudem gibt es eigene sogenannte <strong>Style-Klassen</strong>, anhand derer wir das Aussehen gesondert modifizieren können.<br><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;"><br></span><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important; color: rgb(0, 21, 122) !important;">Auf das Thema Style-Klassen gehen wir unter anderem im </span></em><a href="https://programmieren-starten.de/tkinter-lp1/" target="_blank" class="" style="outline: currentcolor;"><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important; color: rgb(0, 21, 122) !important;">Tkinter-Masterkurs</span></em></a><em><span style="--tcb-applied-color: rgb(0, 21, 122) !important; color: rgb(0, 21, 122) !important;"> mit einem komplett eigenen Modul ein. Darin wirst du detailliert lernen, welche Abstraktionslevel es beim Styling der GUI gibt, was sogenannte Default-Style-Klassen sind, wie man diese konfiguriert, wie man eigene Style-Klassen erzeugen kann und vieles mehr.</span></em></p><p data-css="tve-u-1900252e389" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-4) !important; color: var(--tcb-skin-color-4) !important;">Mithilfe dieser Style-Klassen erreichen wir die gewünschte <strong>Entkopplung</strong> zwischen dem Code, der für die <strong>Funktionalität</strong> verantwortlich ist, und dem Code, der für das <strong>Styling</strong> der GUI sorgt.<em> </em>Diese Entkopplung macht den Code nicht nur übersichtlicher, sondern bringt auch einen weiteren großen Vorteil mit sich.</span></p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1717163257968">8. Vorteile der Style-Klassen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Stell dir vor, du hast in deiner GUI 60 unterschiedliche Widgets eingebaut.<em> </em>Bei allen Widgets hast du das Aussehen jeweils direkt beim Erzeugen des Objekts festgelegt, indem du die entsprechenden Optionen mit Schlüsselwortargumenten gesetzt hast.</p><p><em> </em>Wenn du jetzt etwas grundlegend am Aussehen der GUI ändern möchtest, müsstest du diese Änderungen <strong>in jedem einzelnen Widget-Objekt </strong>vornehmen.<em> </em>Wenn du hingegen allen Objekten einfach nur eine <strong>Style-Klasse</strong> zuweisen würdest, müsste eine Änderung nur an einer Stelle im Code, nämlich in der Style-Klasse, umgesetzt werden. Alle Widgets würden diese Änderungen dann <strong>automatisch</strong> übernehmen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1717163257969">9. Vorteile der ttk Widgets</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Zudem haben die <strong>ttk Widgets</strong> den Vorteil, dass es <strong>mehrere</strong> von ihnen gibt. Insgesamt existieren von den <strong>tk Widgets 12 Stück</strong>, wohingegen es von den <strong>ttk Widgets 18 Stück</strong> gibt.<em> </em>Es stehen damit also 6 Widgets mehr zur Verfügung als bei den normalen tk Widgets.<em> </em>Zudem bieten ttk Widgets ein besseres plattformübergreifendes Erscheinungsbild aufgrund ihrer <strong>Themes</strong>.</p><p><em> </em>Jeder Style folgt einem gewissen übergeordneten Theme, was die ganze GUI optisch <strong>nativer</strong> an die entsprechende <strong>Plattform anpasst</strong>.<em> </em>Wenn du dein Programm beispielsweise auf Windows ausführst, übernimmt es das Grundaussehen einer Windows-Applikation. Führst du dein Programm auf einem Mac aus<em>,</em> übernimmt es das Grundaussehen einer Mac-Applikation. Es fügt sich also „schöner“ ein.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-66631e60459dc1" id="t-1717163257970">10. Fazit</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Aufgrund der genannten Punkte werden wir im weiteren Verlauf dieser Tutorial-Reihe immer mit den <strong>ttk Widgets arbeiten</strong>.<em> </em>Wie gesagt, sind die neuen ttk Widgets nicht ausnahmslos genauso anwendbar wie die normalen TK Widgets, weil beispielsweise Schlüsselwortargumente wie „bg“ nicht entgegengenommen werden können.<em> </em>Dafür gibt es <strong>andere Schlüsselwortargumente </strong>als Optionen, wie wir im nächsten Beitrag sehen werden.</p><p><em> </em>Merken solltest du dir also, dass es sowohl die normalen tk Widgets als auch die ttk Widgets gibt und sich diese in gewissen Belangen voneinander unterscheiden.</p><p>Das zu verstehen ist besonders wichtig, wenn du beispielsweise eine spezifische Frage googeln solltest. Denn oftmals sieht man dann Beispiele mit normalen tk Widgets und Beispiele mit ttk Widgets und wenn man dann <strong>nichts von den Unterschieden</strong> weiß, sorgt das schnell für <strong>Verwirrung</strong>. Da du diesen Beitrag gelesen hast, sollte das allerdings nicht mehr passieren. Im Verlauf der nächsten Blogartikel wird das noch wesentlich klarer werden.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-66631e6045a1d3" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-66631e6045a1f4"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-66631e6045a205" style=""><div class="tcb-flex-col" data-css="tve-u-66631e6045a224" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-66631e6045a248" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-pack/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-66631e6045a251" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-191ff43a1cf" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/ttk-label/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tk-widgets/">Python Tkinter Tutorial #6 &#8211; tk Widgets vs. ttk Widgets</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #5 &#8211; Der Tkinter Pack Layout Manager</title>
		<link>https://www.programmieren-starten.de/blog/tkinter-pack/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 12:14:37 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=29069</guid>

					<description><![CDATA[<p>Mithilfe von Layout Managern können wir Widgets innerhalb der GUI platzieren. Ein Layout Manager, den man hierfür besonders zu Beginn sehr häufig verwendet, ist der Layout Manager Pack. Welche Aufgabe dieser hat und wie man damit die Widgets an beliebigen Stellen platzieren kann, wirst du in diesem Beitrag erfahren. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Was wirst du [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-pack/">Python Tkinter Tutorial #5 &#8211; Der Tkinter Pack Layout Manager</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Mithilfe von Layout Managern können wir Widgets innerhalb der <strong>GUI platzieren</strong>. Ein Layout Manager, den man hierfür besonders zu Beginn sehr häufig verwendet, ist der <strong>Layout Manager Pack</strong>. Welche Aufgabe dieser hat und wie man damit die Widgets an beliebigen Stellen platzieren kann, wirst du in diesem Beitrag erfahren.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=k0capCUbupo&amp;t=798s&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-6655e6791654f2" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #5 - Der Pack Layout Manager" class="tcb-responsive-video" data-code="k0capCUbupo" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="453905725" data-src="https://www.youtube-nocookie.com/embed/k0capCUbupo?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-6655e679165587" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-6655e6791655a4">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Was wirst du in diesem Beitrag lernen?</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Was ist ein Layout Manager und welche Aufgabe hat er?</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Der Tkinter Pack Layout Manager</a></div><div class="tve_ct_level1"><a href="#t-1715931821104" rel="nofollow">4. Die Hintergrundfarbe des Labels mit bg ändern</a></div><div class="tve_ct_level1"><a href="#t-1715931821105" rel="nofollow">5. Die Aufgabe des Tkinter Pack Layout Managers</a></div><div class="tve_ct_level1"><a href="#t-1715931821106" rel="nofollow">6. Das Schlüsselwortargument side</a></div><div class="tve_ct_level2"><a href="#t-1717163257967" rel="nofollow">Was bedeutet "top"?</a></div><div class="tve_ct_level1"><a href="#t-1715931821107" rel="nofollow">7. Das Schlüsselwortargument fill</a></div><div class="tve_ct_level1"><a href="#t-1717163257968" rel="nofollow">8. Das Schlüsselwortargument expand</a></div><div class="tve_ct_level1"><a href="#t-1717163257969" rel="nofollow">9. Was passiert, wenn man expand auf True setzt?</a></div><div class="tve_ct_level1"><a href="#t-1717163257970" rel="nofollow">10. Widgets in beide Richtungen ausbreiten</a></div><div class="tve_ct_level1"><a href="#t-1717163257971" rel="nofollow">11. Wann man auf fill verzichten kann</a></div><div class="tve_ct_level1"><a href="#t-1717163257972" rel="nofollow">12. Anmerkungen zum Schlüsselwortargument side</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e6791655c4" id="tab-con-10">1. Was wirst du in diesem Beitrag lernen?</h2></div><div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>In diesem Beitrag werden wir uns den Tkinter Pack Layout Manager genauer ansehen. Da dies ein größeres Thema ist, sehen wir uns zunächst einmal kurz die Gliederung dieses Beitrags an.</p><p>Im ersten Schritt lernst du, welche <strong>Aufgaben ein Layout Manager</strong> allgemein hat und daraufhin erhältst du einen kurzen Überblick über die <strong>Basis Layout Manager</strong>, die Tkinter zur Verfügung stellt.</p><p>Danach sehen wir uns den Tkinter <strong>Pack Layout Manager</strong> im Detail an und machen uns mit dessen grundlegender <strong>Arbeitsweise</strong> vertraut. Abschließend lernst du, wie du die Platzierung der Widgets über den Pack Layout Manager mithilfe von <strong>Schlüsselwortargumenten</strong> beeinflussen kannst, sodass die Widgets dort platziert werden, wo du sie haben möchtest.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e6791655c4" id="t-1688547294220">2. Was ist ein Layout Manager und welche Aufgabe hat er?</h2></div><div class="thrv_wrapper thrv_text_element">	Wenn man sich mit dem Tkinter Layout Manager beschäftigt, stößt man auf unterschiedliche Bezeichnungen, wie beispielsweise „Layout Manager“, „Geometrie Manager“ oder „Layout Algorithmen“.<p>Alle Begriffe stehen allerdings für das <strong>Gleiche</strong>, denn sie beschreiben den Mechanismus, der für die <strong>Organisation</strong>, <strong>Position</strong> und <strong>Ausrichtung der Widgets</strong> im Tkinter Hauptfenster verantwortlich ist.</p><p>In Tkinter existieren die drei Basis Layout Manager pack, grid und place. Wir werden uns in diesem Einsteiger Crashkurs die wichtigsten Grundlagen des Tkinter Pack Layout Managers und etwas später die des Grid Layout Managers ansehen.</p><p>Bei jedem der Layout Manager handelt es sich nämlich um ein komplexes Thema, welches sich nicht vollständig in diesem Beitrag unterbringen lässt.</p><p style="color: rgb(0, 21, 122) !important; --tcb-applied-color: rgb(0, 21, 122) !important;" data-css="tve-u-18fec9e7e0e"><em>Ich empfehle dir deshalb, einen Blick auf unseren </em><a href="https://programmieren-starten.de/tkinter-lp1/" target="_blank" class="" style="outline: currentcolor;"><em>Tkinter Masterkurs</em></a><em> zu werfen, in welchem wir jedem Layout Manager ein komplett eigenes Modul gewidmet haben. Dort lernst du dieses Thema wesentlich ausführlicher und Schritt für Schritt kennen. Zudem findest du darin Praxisprojekte, in welchen du dein Wissen direkt vertiefen kannst.</em></p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1689865778143">3. Der Tkinter Pack Layout Manager</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wie bereits erwähnt, geht es in diesem Beitrag um den Tkinter Pack Layout Manager, welchen wir bereits in unseren bisherigen Beispielen wiederholt verwendet haben.</p><p>Denn bisher haben wir immer erst ein <strong>Hauptfenster</strong> erstellt und in diesem bis zum jetzigen Zeitpunkt jedes Mal lediglich ein <strong>einzelnes Label</strong> Widget mithilfe des Pack Layout Managers platziert. Wir haben es also mit der Methode pack in die GUI gesetzt, wie das auch im folgenden Beispiel erkennbar ist:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fcf207b63"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29076" alt="Die Tkinter pack Methode in einem Beispiel" data-id="29076" width="742" data-init-width="1904" height="229" data-init-height="588" title="tkinter-pack-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-1.png" data-width="742" data-height="229" style="aspect-ratio: auto 1904 / 588;" data-pagespeed-url-hash="2677387941" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-1.png 1904w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-1-300x93.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-1-1024x316.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-1-768x237.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-1-1536x474.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Dabei haben wir ein Hauptfenster mit der Größe 400 x 400 Pixel erzeugt und ein Label Widget, das den Text Label 1 trägt, hinzugefügt, welches mithilfe von <strong>pack</strong> in der <strong>GUI</strong>
<strong>platziert</strong> wurde.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1715931821104">4. Die Hintergrundfarbe des Labels mit bg ändern</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Damit man die grundlegende Funktionsweise des Pack Layout Managers besser sehen kann, werden wir die <strong>Hintergrundfarbe des Labels verändern</strong>. Dafür gibt es beim Label Widget eine weitere Option, die sich <strong>„bg“</strong> nennt und für „background“ steht.</p><p>Diese können wir als Schlüsselwortargument setzen, indem wir im Code „bg“ schreiben und <strong>als Wert die gewünschte Farbe</strong> zuweisen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-191eaff5b7e" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p style="" data-css="tve-u-18fcf2b4974"><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1= tk.Label(root, text="Label 1",&nbsp;</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">bg</span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">=)</span></strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><br></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Dabei können wir entweder einen <strong>hexadezimalen Farbcode </strong>in Form eines Strings angeben oder den <strong>englischen</strong>
<strong>Farbnamen</strong>. Möchten wir also, dass der Hintergrund grün ist, geben wir als String "<strong>green"&nbsp;</strong>an:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p style="" data-css="tve-u-18fcf2b4974"><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1= tk.Label(root, text="Label 1", bg=</span><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">"<strong class="">green"</strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><br></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm an dieser Stelle ausführen, siehst du, dass das Label nun tatsächlich einen grünen Hintergrund besitzt.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fcf352c39"><span class="tve_image_frame"><img decoding="async" class="tve_image tcb-moved-image wp-image-30012" alt="Das Label hat nun einen grünen Hintergrund" data-id="30012" width="740" data-init-width="1796" height="301" data-init-height="730" title="tkinter-pack-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/09/tkinter-pack-2.png" data-width="740" data-height="301" style="aspect-ratio: auto 1796 / 730;" data-pagespeed-url-hash="2971887862" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-css="tve-u-191faba4289" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-pack-2.png 1796w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-pack-2-300x122.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-pack-2-1024x416.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-pack-2-768x312.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/09/tkinter-pack-2-1536x624.png 1536w" sizes="auto, (max-width: 740px) 100vw, 740px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1715931821105">5. Die Aufgabe des Tkinter Pack Layout Managers</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wie wir auch sehen können, wird es <strong>zentriert</strong>
<strong>ganz oben im Fenster platziert</strong>. Doch <strong>woher weiß das Widget</strong>, dass es dort sein muss? Schließlich hätte es auch ganz unten in der Mitte oder rechts oben in der Ecke Platz.</p><p>Das Widget weiß, wo es platziert werden muss aufgrund des <strong>Layout Managers Pack</strong>. Dies ist auch der Grund, weshalb wir <strong>jedes Widget</strong> erst mit der <strong>pack-Methode</strong> zur GUI <strong>hinzufügen</strong> müssen, damit man es sehen kann. Ohne diesen Layout Manager wüsste das Widget also nicht, wo es platziert werden muss.</p><p>Stell dir nun einmal vor, wir erweitern das Programm noch um ein <strong>zweites Widget</strong>, das wir beispielhaft <em>label2</em> nennen. Auch dieses soll in die <em>root</em> und der Text soll diesmal „Label 2“ lauten. Als Hintergrund für Label 2 legen wir die Farbe Rot fest:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fcf2b4974" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1= tk.Label(root, text="Label 1", bg=</span><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">"green")</span></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"><br>label1.pack()</span></p><p style="" data-css="tve-u-18fcf4014d9"><strong>label2 = tk.label(root, text="Label 2", bg="red")</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Auch dieses müssen wir natürlich jetzt mithilfe von pack in der GUI platzieren:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fcf2b4974" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack()</span></p><p data-css="tve-u-18fcf41389b" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label2 = tk.label(root, text="Label 2", bg="red")</span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"><br></span><strong>label2.pack()</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>&nbsp;Nachdem wir das Programm noch einmal ausgeführt haben, sehen wir die folgende Ausgabe:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fcf43a32a"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29083" alt="Nachdem wir für Label 2 die Tkinter Pack Methode angegeben haben sehen wir bei der Ausgabe Label 2 direkt unter Label 1" data-id="29083" width="742" data-init-width="1498" height="273" data-init-height="552" title="tkinter-pack-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-3.png" data-width="742" data-height="273" style="aspect-ratio: auto 1498 / 552;" data-pagespeed-url-hash="3266387783" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-3.png 1498w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-3-300x111.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-3-1024x377.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-pack-3-768x283.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element"><p>Das zweite Label hängt jetzt genau <strong>unter</strong> Label 1, wofür der Tkinter Pack Layout Manager verantwortlich ist.</p><blockquote class="">Ein Layout Manager ist also nicht nur für die Widgets im Einzelnen wichtig, sondern auch für die <strong>Widgets in ihrer Gesamtheit.</strong></blockquote><p>Denn jedes Mal, wenn wir ein weiteres Widget zur GUI hinzufügen, muss der <strong>Pack</strong> Layout Manager alles <strong>umorganisieren</strong>, sodass alle Widgets sauber platziert sind und sich beispielsweise nicht überlappen.</p><p>Wie du sehen kannst, sind Layout Manager von großer Bedeutung. Dabei ist in Tkinter Pack einer der am meist genutzten, da er die Widgets auf einfache Art vollkommen <strong>automatisch</strong>
<strong>im Fenster platziert</strong> basierend auf dem Platz, der darin noch verfügbar ist.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1715931821106">6. Das Schlüsselwortargument side</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir können dem Pack Layout Manager jetzt auch noch mitteilen, dass er gewisse Widgets an <strong>bestimmte Positionen</strong> setzen soll. Denn nur so wird uns ermöglicht, GUIs zu bauen, die so aussehen, wie wir uns das vorstellen.</p><p>Das funktioniert mithilfe gewisser <strong>Schlüsselwortargumente</strong>, die wir beim pack-Methodenaufruf mitübergeben können. Aktuell werden die beiden Labels oben in der Mitte platziert, weil standardmäßig der Wert des sogenannten Schlüsselwortarguments „<strong>side</strong>“ <strong>auf <em>top</em> gesetzt ist.</strong></p><p>Der pack-Methode könnten wir jetzt also auch das Schlüsselwortargument <strong>side</strong> direkt mitübergeben und ebenfalls auf <em><strong>top</strong></em> setzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-6655e679165724" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1 = tk.Label(root, text="Label 1", bg="green")<br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1.pack(side="top")</span></strong><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"><br></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Bei Label 2 machen wir es genauso:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-6655e679165724" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18fdd3626e7">label2 = tk.Label(root, text="Label 2", bg="red")<br></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-18fdd3626e9">label2.pack(side="top")</span></strong><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18fdd3626ea"><br></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt noch einmal ausführen, sehen wir die exakt gleiche Ausgabe wie zuvor:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fdd3abd62"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29089" alt="Der Tkinter Pack Layout Manager hängt Label 2 direkt unter Label 1" data-id="29089" width="742" data-init-width="1790" height="307" data-init-height="740" title="tkinter-pack-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-4.png" data-width="742" data-height="307" style="aspect-ratio: auto 1790 / 740;" data-pagespeed-url-hash="2967076595" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-4.png 1790w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-4-300x124.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-4-1024x423.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-4-768x317.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-4-1536x635.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element"><h3 class="" id="t-1717163257967">Was bedeutet "top"?</h3></div><div class="thrv_wrapper thrv_text_element"><p>Denn <strong>standardmäßig</strong>, also wenn wir für die Option side <strong>selbst keinen Wert festlegen</strong>, ist der Wert immer auf top gesetzt. <strong>„top“</strong> bedeutet aber nicht nur, dass das Label oben in der Mitte platziert wird, sondern es geschieht noch etwas anderes sehr Wichtiges dabei.</p><blockquote class="">Tkinter allokiert nämlich für jedes so platzierte Widget <strong>ebenfalls</strong> die <strong>gesamte Breite</strong> der Applikation.</blockquote><p>Was bedeutet das? Wie wir sehen, wird Label 1 zentriert, also mittig in der GUI angezeigt. Insgesamt ist für dieses Label allerdings auch der komplette <strong>horizontale Platz</strong> reserviert, welchen ich auf der folgenden Abbildung durch einen roten Kasten visualisiert habe:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fdd3b89cd"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29091" alt="Auch der gesamte horizontale Platz ist für das Label reserviert" data-id="29091" width="742" data-init-width="1634" height="181" data-init-height="398" title="tkinter-pack-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-5.png" data-width="742" data-height="181" style="aspect-ratio: auto 1634 / 398;" data-pagespeed-url-hash="3261576516" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-5.png 1634w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-5-300x73.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-5-1024x249.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-5-768x187.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-5-1536x374.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element"><p>Gleiches gilt für <strong>Label 2</strong>. Auch für dieses ist der gesamte horizontale Platz rechts und links vom Label reserviert. Das bringt uns zu einer weiteren Frage: Warum nutzen Label 1 und Label 2 <strong>nicht den kompletten Platz</strong>, der ihnen zur Verfügung steht?</p><blockquote class="">Ganz einfach: Weil ein Label immer nur <strong>so viel Platz beansprucht</strong>, wie es benötigt, um den <strong>Inhalt des Labels </strong>darstellen zu können.</blockquote><p>Wir schließen das Fenster nun also noch mal und passen den Text von Label 1 an, indem wir „beansprucht nun mehr Platz“ dazu schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-6655e679165724" style=""><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-18fdd43318d">label1 = tk.Label(root, text="Label 1 </span><span data-css="tve-u-18fdd43318f" style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">beansprucht nun mehr Platz</span><span data-css="tve-u-18fdd42d813" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">", bg="green")</span><strong><span data-css="tve-u-18fdd42d814" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><br></span></strong><span data-css="tve-u-18fdd42d816" style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack(side="top")<br></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Führen wir das Programm jetzt noch einmal aus, sehen wir, dass das Label nun in die <strong>Breite gewachsen</strong> ist, weil es jetzt mehr Platz benötigt, um den Text darstellen zu können:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fdd5a8934"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29096" alt="Bei einem längeren Text sorgt Tkinter pack dafür, dass das Label in die Breite wächst" data-id="29096" width="742" data-init-width="1686" height="182" data-init-height="414" title="tkinter-pack-6" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-6.png" data-width="742" data-height="182" style="aspect-ratio: auto 1686 / 414;" data-pagespeed-url-hash="3556076437" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-6.png 1686w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-6-300x74.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-6-1024x251.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-6-768x189.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-6-1536x377.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Aus diesem Grund ist der gesamte horizontale Platz für das Label reserviert.</p><p>Ändern wir an dieser Stelle den Text aber wieder auf „Label 1“:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fdd6474a8" style=""><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-18fdd43318d">label1 = tk.Label(root, text="</span><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">Label 1</span><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">", bg="green")<br></span></strong><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1.pack(side="top")</span><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;"><br></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1715931821107">7. Das Schlüsselwortargument fill</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Nun gibt es ein weiteres Schlüsselwortargument, mithilfe dessen wir dafür sorgen können, dass das Label <strong>trotz</strong> des <strong>kleinen Textes</strong> den <strong>kompletten horizontalen Platz</strong> füllt.</p><p>Es handelt sich dabei um das Schlüsselwortargument <em><strong>„fill“</strong></em>.</p><p>Wir können also der pack-Methode von Label 1 auch noch das Schlüsselwortargument „fill“ mitübergeben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fdd6474a8" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1 = tk.Label(root, text="Label 1", bg="green")<br></span><strong><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1.pack(side="top", fill=)<br></span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><p>Dem Schlüsselwortargument fill weisen wir nun den Wert "<strong>x"</strong> als String zu:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fdd6bc560" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1 = tk.Label(root, text="Label 1", bg="green")<br></span><strong><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">label1.pack(side="top", fill=</span><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">"x"</span><span data-css="tve-u-18fdd43318d" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)<br></span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm an dieser Stelle erneut ausführen, sehen wir, dass sich das Label 1 jetzt über die komplette Breite erstreckt, die es zur Verfügung hat:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fdd6cdd84"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29103" alt="Das Label erstreckt sich nun über die gesamte Breite des Fensters" data-id="29103" width="742" data-init-width="1502" height="186" data-init-height="376" title="tkinter-pack-7" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-7.png" data-width="742" data-height="186" style="aspect-ratio: auto 1502 / 376;" data-pagespeed-url-hash="3850576358" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-7.png 1502w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-7-300x75.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-7-1024x256.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-7-768x192.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wir wählen deshalb "x", weil wir das Programm damit anweisen, den gesamten allokierten Platz<strong> in x-Richtung</strong> zu füllen. Neben x können wir auch <strong>y</strong> zuweisen. Damit geben wir vor, dass das Programm den kompletten Platz in <strong>y-Richtung</strong> füllen soll, also den Platz, den es <strong>vertikal</strong> allokiert hat.</p><p>Dafür ersetzen wir in unserem Code zunächst das "x" durch ein "y" und führen das Programm erneut aus:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fdd91a6f2" style=""><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">label1.pack(side="top", fill=</strong></span><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class=""><span style="color: var(--tcb-color-2) !important;">"y"</span></strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">)</strong><br></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt sehen wir, dass erst mal nichts passiert:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fdd92aa87"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29107" alt="Tkinter Pack scheint erst mal nichts zu tun" data-id="29107" width="742" data-init-width="1558" height="238" data-init-height="500" title="tkinter-pack-8" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-8.png" data-width="742" data-height="238" style="aspect-ratio: auto 1558 / 500;" data-pagespeed-url-hash="4145076279" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-8.png 1558w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-8-300x96.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-8-1024x329.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-8-768x246.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-8-1536x493.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das liegt daran, dass das Argument <em>side</em> des Labels auf „<strong>top</strong>“ gesetzt ist. Wenn das der Fall ist, allokiert das Widget zwar den komplett <strong>verfügbaren</strong>
<strong>horizontalen Platz</strong>, allerdings nur den <strong>vertikalen Platz</strong>, den es benötigt, um den <strong>Inhalt darstellen</strong> zu können. Aus diesem Grund „klebt“ Label 2 direkt unter Label 1.</p><p>Denn rechts und links von Label 1 kann es schließlich nicht platziert werden, da der Platz für Label 1 bereits <strong>reserviert</strong> ist. Folglich wird es direkt darunter gesetzt und damit an die nächst höchstmögliche Stelle in der Applikation.</p><p>Wenn wir jetzt noch ein drittes Label oder anderweitiges Widget hinzufügen würden, würde dieses im Fall, dass wir <em>side</em> standardmäßig auf top gesetzt lassen, ebenfalls wieder direkt <strong>unter Label 2</strong> platziert werden.</p><p>Noch einmal zur Wiederholung: Bei <strong><em>fill=y</em></strong> sehen wir <strong>keinen Unterschied</strong>, da Label 1 bereits den gesamten vertikalen Platz einnimmt, den es allokiert hat.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1717163257968">8. Das Schlüsselwortargument expand</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir könnten Tkinter jetzt aber auch dazu anweisen, den Platz für Label 1 in y-Richtung, also in die <strong>vertikale Richtung</strong> um so viel Platz wie möglich zu <strong>vergrößern</strong>.</p><p>Das lässt sich mithilfe des Schlüsselwortarguments <strong><em>expand</em></strong> umsetzen. Dieses müssen wir auf den Wahrheitswert True setzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fdd983612" style=""><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">label1.pack(side="top", </strong></span><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class=""><span style="color: var(--tcb-color-2) !important;">expand=True</span></strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">, fill="y")<br></strong></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>An dieser Stelle führen wir das Programm aus und sehen die folgende Ausgabe:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fdda67e2e"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29110" alt="Der Tkinter Pack Layout Manager versucht so viel Platz wie möglich in y-Richtung zu allokieren" data-id="29110" width="742" data-init-width="1922" height="384" data-init-height="996" title="tkinter-pack-9" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-9.png" data-width="742" data-height="384" style="aspect-ratio: auto 1922 / 996;" data-pagespeed-url-hash="144608904" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-9.png 1922w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-9-300x155.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-9-1024x531.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-9-768x398.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-9-1536x796.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wir sagen damit also dem Pack Layout Manager, dass er <strong>Label 1</strong> oben in das Hauptfenster setzen und nicht nur das allokieren soll, dass er standardmäßig mit der Zeile <em>side=top</em> bereits macht, nämlich den kompletten horizontalen Platz für das Label, sondern versucht, noch <strong>so viel Platz wie möglich in y-Richtung</strong> (vertikal) zu allokieren.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1717163257969">9. Was passiert, wenn man expand auf True setzt?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Beim Ausführen des Programms sehen wir, dass sich <strong>Label 1 </strong>den <strong>gesamten</strong>
<strong>Platz</strong> in y-Richtung nimmt, den es beanspruchen kann, aber noch so viel Platz übrig lässt, dass <strong>Label 2 vollständig dargestellt</strong> werden kann.</p><p>Wenn man <em>expand</em> auf True setzt, muss man also nicht befürchten, dass die anderen Widgets innerhalb der GUI nicht mehr sichtbar sein werden, da es nur so viel Platz allokiert, dass die übrigen Widgets noch normal dargestellt werden können.</p><p>Jetzt könnte man auch auf die Idee kommen, beispielsweise <strong>Label 2</strong> beim Aufruf der pack-Methode mitzuteilen, <strong>ebenfalls so viel Platz wie möglich </strong>zu allokieren. Das heißt, wir schreiben auch bei Label 2 <em>expand</em> und setzen dessen Wert auf True:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fddb9278c" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><span style="color: var(--tcb-skin-color-5) !important;">label2 = tk.Label(root, text="Label 2", bg="red")</span><strong class=""><span style="color: var(--tcb-skin-color-5) !important;"><br></span></strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">label2.pack(side="top", </strong></span><span style="--tcb-applied-color: var$(--tcb-color-2) !important;"><strong class=""><span style="color: var(--tcb-color-2) !important;">expand=True</span></strong></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important;"><strong class="">)<br></strong></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm nun erneut ausführen, sehen wir, dass der Pack Layout Manager dafür sorgt, dass sich beide Widgets den möglichen Platz teilen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fddc7155d"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29115" alt="Tkinter Pack sorgt dafür, dass sich beide Widgets den möglichen Platz teilen" data-id="29115" width="742" data-init-width="1838" height="362" data-init-height="896" title="tkinter-pack-10" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-10.png" data-width="742" data-height="362" style="aspect-ratio: auto 1838 / 896;" data-pagespeed-url-hash="2806286522" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-10.png 1838w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-10-300x146.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-10-1024x499.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-10-768x374.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-10-1536x749.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Denn wir schreiben vor, dass die beiden Widgets so viel Platz wie möglich einnehmen sollen und <strong>pack</strong> ist so intelligent, dass es diesen <strong>Platz für beide gleich aufteilt</strong>. So erhält Label 1 50 Prozent und Label 2 ebenfalls 50 Prozent des Platzes.</p><p>Wie bei Label 1 können wir auch bei Label 2 <em>fill</em> auf y setzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fddb9278c" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;" data-css="tve-u-18fde256e68"><span style="color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18fde256e6a">label2 = tk.Label(root, text="Label 2", bg="red")<br></span></span><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important;" data-css="tve-u-18fde256e6b"><span style="color: var(--tcb-color-1) !important;" data-css="tve-u-18fde256e6c">label2.pack(side="top", expand=True, </span></span><span style="--tcb-applied-color: var$(--tcb-color-2) !important;" data-css="tve-u-18fde256e6d"><span style="color: var(--tcb-color-2) !important;" data-css="tve-u-18fde256e6e">fill="y"</span></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important;" data-css="tve-u-18fde256e6f"><span style="color: var(--tcb-color-1) !important;" data-css="tve-u-18fde256e70">)</span></span></strong><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;" data-css="tve-u-18fde256e78"><strong class=""><span style="color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18fde256e79"><br></span></strong></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Dann führen wir das Programm erneut aus uns sehen in der Ausgabe noch deutlicher, dass sich beide Labels den Platz zur Hälfte teilen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fde267cae"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29118" alt="Nun sehen wir noch deutlicher, dass sich die beiden Labels den Platz zur Hälfte teilen" data-id="29118" width="742" data-init-width="1824" height="365" data-init-height="898" title="tkinter-pack-11" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-11.png" data-width="742" data-height="365" style="aspect-ratio: auto 1824 / 898;" data-pagespeed-url-hash="3100786443" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-11.png 1824w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-11-300x148.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-11-1024x504.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-11-768x378.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-11-1536x756.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1717163257970">10. Widgets in beide Richtungen ausbreiten</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Bisher haben wir bei<em> fill</em> immer entweder den Wert x oder y zugewiesen. Es gibt allerdings noch einen weiteren Wert namens <strong><em>both</em></strong>, den wir zuweisen können. Damit sorgen wir dafür, dass es den Platz in <strong>beide Richtungen</strong>, also sowohl in x- als auch in y-Richtung füllt.</p><p>Das können wir beispielsweise bei Label 2 umsetzen, indem wir „y“ durch „both“ ersetzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fde28929c" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;" data-css="tve-u-18fde256e68"><span style="color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18fde256e6a">label2 = tk.Label(root, text="Label 2", bg="red")<br></span></span><strong><span data-css="tve-u-18fde256e68" style="--tcb-applied-color: var$(--tcb-color-1) !important;"><span data-css="tve-u-18fde256e6a" style="color: var(--tcb-color-1) !important;">label2.pack(side="top", expand=True, </span></span><span data-css="tve-u-18fde256e68" style="--tcb-applied-color: var$(--tcb-color-2) !important;"><span data-css="tve-u-18fde256e6a" style="color: var(--tcb-color-2) !important;">fill="both"</span></span><span data-css="tve-u-18fde256e68" style="--tcb-applied-color: var$(--tcb-color-1) !important;"><span data-css="tve-u-18fde256e6a" style="color: var(--tcb-color-1) !important;">)</span></span></strong><span data-css="tve-u-18fde256e68" style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><span data-css="tve-u-18fde256e6a" style="color: var(--tcb-skin-color-5) !important;"><br></span></span></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Anschließend führen wir das Programm erneut aus und sehen, dass der gesamte Platz, der für <strong>Label 2 reserviert</strong> wurde, nun mit der roten Hintergrundfarbe dargestellt wird. Das liegt daran, dass das Label nun den komplett allokierten Platz verwendet.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fde306043"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29123" alt="Das Label verwendet. nun den komplett allokierten Platz" data-id="29123" width="742" data-init-width="1774" height="376" data-init-height="898" title="tkinter-pack-12" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-12.png" data-width="742" data-height="376" style="aspect-ratio: auto 1774 / 898;" data-pagespeed-url-hash="3395286364" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-12.png 1774w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-12-300x152.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-12-1024x518.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-12-768x389.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-12-1536x778.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1717163257971">11. Wann man auf fill verzichten kann</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Man muss nebenbei bemerkt, wenn man <strong><em>expand</em></strong> verwendet, <strong>nicht zwangsläufig auch fill</strong> als Argument übergeben. Das heißt, wir könnten beispielsweise <em>fill</em> löschen, das Programm noch einmal ausführen und sehen dann, dass der Platz dennoch in zwei Hälften geteilt wird:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6655e679165622" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6655e679165643">	<p data-css="tve-u-18fde87bd1b" style=""><span data-css="tve-u-18fde87bd1c"><span data-css="tve-u-18fde87bd1e"><strong>label1.pack(side=”top”, expand=True, <span style="text-decoration: line-through;"><span style="--tcb-applied-color: rgb(255, 0, 0) !important; color: rgb(255, 0, 0) !important;">fill="y"</span></span><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></strong></span></span></p></div></div>
</div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18fde980989"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29126" alt="Der Tkinter Pack Layout Manager teilt den Platz dennoch in zwei Hälften" data-id="29126" width="742" data-init-width="1876" height="379" data-init-height="958" title="tkinter-pack-13" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-13.png" data-width="742" data-height="379" style="aspect-ratio: auto 1876 / 958;" data-pagespeed-url-hash="3689786285" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-13.png 1876w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-13-300x153.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-13-1024x523.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-13-768x392.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/06/tkinter-pack-13-1536x784.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Es wird also dennoch der Platz entsprechend allokiert, allerdings erstreckt sich das Label nicht über den komplett allokierten Platz, sondern nutzt lediglich den <strong>minimalen</strong>
<strong>Raum</strong>, den es benötigt, um den Inhalt sauber darstellen zu können.</p><p>Der Platz um das Label 1 herum ist aber immer noch für dieses <strong>reserviert</strong>.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6655e679165613" id="t-1717163257972">12. Anmerkungen zum Schlüsselwortargument side</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Damit hast du nun auch schon mal gesehen, wie sich <strong>pack</strong> verhält, wenn wir bei allen Widgets den Standardwert von <strong>side</strong> auf <strong>top</strong> setzen, was wir in jedem der eben vorgeführten Beispiele getan haben.</p><p>Wir können den Wert von <em>side</em> allerdings <strong>nicht nur auf top</strong> setzen, sondern auch auf <strong>bottom</strong>, sodass das Widget unten platziert wird. Auch <strong>left</strong>, also links und <strong>right</strong> (rechts) können wir angeben, um es an die jeweilige Position zu bringen.</p><p>Wenn man das so umsetzt und den Labels unterschiedliche side Values zuweist, bringt das in gewissen Konstellationen immer wieder bestimmte Implikationen mit sich.</p><p style="--tcb-applied-color: rgb(0, 21, 122) !important;"><span style="color: rgb(0, 21, 122) !important;"><br><em>Wie bereits erwähnt, sind im </em></span><a href="https://programmieren-starten.de/tkinter-lp1/" target="_blank" class="" style="color: rgb(0, 21, 122) !important; outline: currentcolor;"><span style="--tcb-applied-color: rgb(0, 21, 122) !important;"><em>Python Tkinter Masterkurs</em></span></a><em><font color="#00157a">&nbsp;sämtliche Fälle, die auftreten können, detailliert beschrieben und erklärt. In diesem Beitrag würde all das jedoch den Rahmen sprengen, weshalb es <span style="caret-color: rgb(0, 21, 122);">sich lohnt, einen Blick auf den Tkinter Masterkurs zu werfen.</span></font></em></p><p>An dieser Stelle empfehle ich dir, deine <strong>Entwicklungsumgebung</strong> zu öffnen und die eben gelernten Dinge selbst <strong>auszuprobieren</strong>. Denn nur so bekommst du ein Gefühl dafür, wie der Pack Layout Manager arbeitet. Ich weiß, dass das gerade anfangs etwas kompliziert klingt, aber wenn das Prinzip erst mal verstanden ist und du ein paar Widgets damit platziert hast, wirst du diesen intuitiv und ohne viel nachzudenken, nutzen können.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-6655e679165764" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-6655e679165772"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-6655e679165793" style=""><div class="tcb-flex-col" data-css="tve-u-6655e6791657a3" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-6655e6791657b3" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-gui/" class="tcb-button-link tcb-plain-text"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-6655e6791657d2" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-191fb3054dc" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tk-widgets/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-pack/">Python Tkinter Tutorial #5 &#8211; Der Tkinter Pack Layout Manager</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #4 &#8211; Das Tkinter GUI Hauptfenster</title>
		<link>https://www.programmieren-starten.de/blog/tkinter-gui/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 11:09:14 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=29024</guid>

					<description><![CDATA[<p>Kann man das Tkinter GUI Hauptfenster umgestalten, indem man beispielsweise den Titel verändert oder die Größe anpasst? Die Antwort auf diese Frage ist ein klares „Ja“! Wie das genau funktioniert, wirst du in diesem Beitrag im Detail erfahren. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Was wirst du in diesem Beitrag lernen?2. Den Titel der Tkinter GUI modifizieren3. Die [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-gui/">Python Tkinter Tutorial #4 &#8211; Das Tkinter GUI Hauptfenster</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Kann man das Tkinter <strong>GUI Hauptfenster </strong><strong>umgestalten</strong>, indem man beispielsweise den Titel verändert oder die Größe anpasst? Die Antwort auf diese Frage ist ein klares „Ja“! Wie das genau funktioniert, wirst du in diesem Beitrag im Detail erfahren.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=xuR4yQqgKkY&amp;t=83s&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-18f8591bb2f" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #4 - Das GUI Hauptfenster modifizieren" class="tcb-responsive-video" data-code="xuR4yQqgKkY" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="227513523" data-src="https://www.youtube-nocookie.com/embed/xuR4yQqgKkY?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-664706f0536825" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-664706f0536846">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Was wirst du in diesem Beitrag lernen?</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Den Titel der Tkinter GUI modifizieren</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Die title-Methode</a></div><div class="tve_ct_level1"><a href="#t-1715931821104" rel="nofollow">4. Die geometry-Methode</a></div><div class="tve_ct_level1"><a href="#t-1715931821105" rel="nofollow">5. Die minsize-Methode</a></div><div class="tve_ct_level1"><a href="#t-1715931821106" rel="nofollow">6. Die maxsize-Methode</a></div><div class="tve_ct_level1"><a href="#t-1715931821107" rel="nofollow">7. Die resizable-Methode</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-664706f0536855" id="tab-con-10">1. Was wirst du in diesem Beitrag lernen?</h2></div><div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Wir werden uns in diesem Tutorial ansehen, wie wir zum einen den <strong>Titel</strong> im Hauptfenster unserer Applikation <strong>ändern</strong> können und zum anderen wie wir die <strong>Größe</strong> des <strong>Fensters</strong> der Applikation spezifizieren.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-664706f0536855" id="t-1688547294220">2. Den Titel der Tkinter GUI modifizieren</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Um den Titel der Applikation zu ändern, habe ich im ersten Schritt das „Hallo Welt“-Programm des letzten Blogartikels geöffnet:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f859d601d"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29028" alt="Um den Titel der Tkinter GUI zu ändern, öffnen wir zunächst das Hallo Welt-Programm" data-id="29028" width="742" data-init-width="1924" height="205" data-init-height="532" title="tkinter-gui-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-1.png" data-width="742" data-height="205" style="aspect-ratio: auto 1924 / 532;" data-pagespeed-url-hash="1145174929" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-1.png 1924w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-1-300x83.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-1-1024x283.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-1-768x212.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-1-1536x425.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm noch einmal ausführen, sehen wir ein Hauptfenster, in welchem das Label „Hallo Welt“ platziert ist:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f859e6624"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29029" alt="links oben in der Ecke sehen wir das Hauptfenster mit dem Label &quot;Hallo Welt&quot;" data-id="29029" width="742" data-init-width="1480" height="163" data-init-height="326" title="tkinter-gui-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-2.png" data-width="742" data-height="163" style="aspect-ratio: auto 1480 / 326;" data-pagespeed-url-hash="1439674850" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-2.png 1480w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-2-300x66.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-2-1024x226.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-2-768x169.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Ziehen wir das Fenster größer, dann sehen wir ganz oben zentriert den <strong>Titel</strong> „tk“:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f85a32d30"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29030" alt="Wenn wir das Tkinter GUI Fenster größer ziehen, sehen wir den Titel &quot;tk&quot;" data-id="29030" width="742" data-init-width="1570" height="198" data-init-height="420" title="tkinter-gui-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-3.png" data-width="742" data-height="198" style="aspect-ratio: auto 1570 / 420;" data-pagespeed-url-hash="1734174771" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-3.png 1570w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-3-300x80.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-3-1024x274.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-3-768x205.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-3-1536x411.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das ist der Titel, der immer <strong>standardmäßig</strong> beim Erzeugen eines Tk-Objekts vergeben wird. Verändern können wir diesen Titel mithilfe der <strong>Methode title()</strong>.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-664706f05368a6" id="t-1689865778143">3. Die title-Methode</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir rufen also auf dem Tk-Objekt, auf das wir mit der Variable root referenzieren, die title-Methode auf. Dafür schreiben wir im Code folgendes:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p data-css="tve-u-18f85b9c47b" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18f85a44c3a">root = tk.Tk()</span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-18f85a44c3c">root.title()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Dieser Methode übergeben wir nun als <strong>Argument</strong> einen <strong>String</strong>, bei dem es sich um den gewünschten neuen Titel handelt. Beispielhaft schreibe ich dafür einfach mal „Hier steht der Titel“ zwischen die Klammern:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p data-css="tve-u-18f85a55a51" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18f85a44c3a">root = tk.Tk()</span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-18f85a44c3c">root.title(</span><span data-css="tve-u-18f85a44c3c" style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">"<strong class="">Hier steht der Titel"</strong></span><span data-css="tve-u-18f85a44c3c" style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">)</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm an dieser Stelle erneut ausführen und das Fenster direkt größer ziehen, sodass der Titel sichtbar wird, sehen wir, dass „tk“ tatsächlich durch den Titel „Hier steht der Titel“ ersetzt wurde.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f85aaa23e"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29036" alt="Der Titel wurde tatsächlich ersetzt" data-id="29036" width="742" data-init-width="1606" height="216" data-init-height="468" title="tkinter-gui-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-4.png" data-width="742" data-height="216" style="aspect-ratio: auto 1606 / 468;" data-pagespeed-url-hash="2028674692" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-4.png 1606w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-4-300x87.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-4-1024x298.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-4-768x224.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-4-1536x448.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das funktioniert also schon mal!</p><p>Aktuell ist es allerdings noch so, dass beim Ausführen des Programms das Tkinter GUI Fenster automatisch <strong>nur so groß </strong>ist, wie es sein muss, um die <strong>Inhalte</strong> darin darstellen zu können.</p><p>Da es darin gerade nur das Label „Hallo Welt“ gibt, ist das Fenster extrem klein. Schließlich benötigt der Text „Hallo Welt“ nur sehr wenig Platz, um dargestellt werden zu können.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-664706f05368a6" id="t-1715931821104">4. Die geometry-Methode</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir können jetzt allerdings mithilfe der <strong>Methode geometry()</strong> selbst festlegen, wie groß das Fenster standardmäßig sein soll. Hierzu rufen wir ebenfalls auf dem tk-Objekt (root) die Methode <em>geometry</em> auf:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root = tk.Tk()</span><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"><br></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">root.title("Hier steht der Titel")</span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">root.geometry()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Als Argument müssen wir dieser Methode einen String übergeben, in welchem wir an erster Stelle die <strong>Breite in Pixel</strong> angeben, die das Tkinter GUI Fenster haben soll. Dafür lege ich beispielsweise 800 fest. Danach folgt ein "x" und anschließend die <strong>Höhe in Pixel</strong>, für die ich 400 wähle:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"></span><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;"></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">root.title("Hier steht der Titel")</span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">root.geometry("<strong>800x400"</strong>)</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm nun noch einmal ausführen, sehen wir, dass das Fenster jetzt nicht mehr so klein ist wie zuvor, sondern dass es jetzt exakt eine Breite von 800 Pixel und eine Höhe von 400 Pixel aufweist:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f85c82cee"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29042" alt="Unsere Tkinter GUI hat nun die festgelegte Breite und Höhe" data-id="29042" width="742" data-init-width="1622" height="297" data-init-height="650" title="tkinter-gui-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-5.png" data-width="742" data-height="297" style="aspect-ratio: auto 1622 / 650;" data-pagespeed-url-hash="2323174613" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-5.png 1622w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-5-300x120.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-5-1024x410.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-5-768x308.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-5-1536x616.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Würden wir die Werte tauschen, indem wir die Breite auf 400 Pixel und die Höhe auf 800 Pixel setzen, sähe das Fenster entsprechend anders aus:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f85ca1e66"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29045" alt="Nach dem Tauschen der Werte der Tkinter GUI, sieht diese anders aus" data-id="29045" width="742" data-init-width="1512" height="388" data-init-height="790" title="tkinter-gui-6" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-6.png" data-width="742" data-height="388" style="aspect-ratio: auto 1512 / 790;" data-pagespeed-url-hash="2617674534" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-6.png 1512w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-6-300x157.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-6-1024x535.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-6-768x401.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Also genau umgekehrt. Wichtig zu verstehen ist, dass wir das Fenster mit der <strong>Maus</strong> weiterhin <strong>beliebig verziehen</strong> und dessen Größe ändern können, obwohl wir eine feste Größe angegeben haben.</p><p>Um das auch noch einzuschränken, stehen uns zwei weitere Methoden zur Verfügung, über welche wir sowohl die <strong>Maximal</strong>- als auch die <strong>Minimalgröße des Fensters</strong> festlegen können. Was ich damit meine, werde ich dir direkt anhand eines Beispiels zeigen.</p><p>Nehmen wir einmal an, das Fenster hat standardmäßig eine Größe von 400 x 400 Pixel.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"></span><span style="color: var(--tcb-skin-color-5) !important;"><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important;">root.title("Hier steht der Titel")</span></span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">root.geometry("<strong><strong>400x400</strong>"</strong>)</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><p>Beim Ausführen des Programms sehen wir also diese Größe als Standardgröße unseres Fensters. Nun möchten wir, dass man das Fenster zwar weiterhin mithilfe der Maus vergrößern und verkleinern kann, allerdings soll die Bedingung integriert werden, dass das Fenster <strong>nicht kleiner gezogen werden kann</strong> als beispielsweise 250 x 250 Pixel.</p><blockquote class="">Wir möchten damit also eine <strong>Mindestgröße</strong> definieren, die das Fenster nicht unterschreiten darf.</blockquote><p>Das können wir mit der Methode <strong>minsize() </strong>ganz einfach umsetzen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-664706f05368a6" id="t-1715931821105">5. Die minsize-Methode</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Dieser Methode können wir die beiden Schlüsselwortargumente <em>width</em> und <em>height</em> übergeben und jeweils den gewünschten <strong>Mindestwert</strong> in <strong>Pixel</strong> zuweisen.</p><p>Da wir möchten, dass die Breite und die Höhe des Fensters minimal 250 Pixel betragen, schreiben wir folgendes im Code:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p data-css="tve-u-18f85cca4a0" style=""><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"><strong>root.geometry("400x400")</strong><br></span></strong><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;"></span></strong><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">root.minsize(width=250, height=250)</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm nun noch mal ausführen, sehen wir weiterhin die Standardgröße unseres Fensters von 400 x 400 Pixel.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f85d2c66c"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29049" alt="Zunächst sehen wir weiterhin die Standardgröße unseres GUI Fensters" data-id="29049" width="742" data-init-width="1408" height="311" data-init-height="590" title="tkinter-gui-7" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-7.png" data-width="742" data-height="311" style="aspect-ratio: auto 1408 / 590;" data-pagespeed-url-hash="2912174455" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-7.png 1408w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-7-300x126.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-7-1024x429.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-7-768x322.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Ziehen wir das Ganze jetzt allerdings <strong>kleiner</strong>, geht das nur bis zu einem <strong>gewissen Punkt:</strong></p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f85d3a538"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29050" alt="Wir können das Fenster nur bis zu einem gewissen Punkt verkleinern" data-id="29050" width="742" data-init-width="1280" height="261" data-init-height="450" title="tkinter-gui-8" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-8.png" data-width="742" data-height="261" style="aspect-ratio: auto 1280 / 450;" data-pagespeed-url-hash="3206674376" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-8.png 1280w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-8-300x105.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-8-1024x360.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-gui-8-768x270.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Der Versuch, das Fenster noch kleiner zu ziehen, scheitert. Das liegt daran, dass wir durch unseren Code die Größe 250 x 250 Pixel <strong>nicht unterschreiten können</strong>.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-664706f05368a6" id="t-1715931821106">6. Die maxsize-Methode</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Genauso könnten wir auch mithilfe der Methode <strong>maxsize() </strong>die <strong>Maximalgröße des Fensters</strong> vorgeben. Das heißt, wir rufen die Methode <em>maxsize</em> im Code auf und legen für die Breite (width) maximal 600 und für die Höhe (height) ebenfalls maximal 600 Pixel fest:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p data-css="tve-u-18f85d55b34" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;"></span><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.minsize(width=250, height=250)<br></span><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;"></span></strong><strong>root.maxsize(width=600, height=600)</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir den Code so noch einmal ausführen, ist jetzt auch die <strong>Maximalgröße beschränkt</strong>. Das Fenster lässt sich also weiterhin mit der Maus vergrößern und verkleinern, allerdings nur <strong>zwischen dem Mindestwert</strong> von 250 x 250 Pixel und dem <strong>Maximalwert</strong> von 600 x 600 Pixel. Wenn du das Fenster nun versuchst, über den Maximalwert hinaus zu ziehen, wirst du merken, dass das nicht funktioniert.</p><p>Wir haben damit also zwei sehr nützliche Methoden, die man auf jeden Fall kennen sollte.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-664706f05368a6" id="t-1715931821107">7. Die resizable-Methode</h2></div><div class="thrv_wrapper thrv_text_element">	<p>In manchen Fällen möchte man sogar, dass der Nutzer<strong> gar nicht</strong> die Möglichkeit hat, das Fenster zu vergrößern oder zu verkleinern.</p><p>In diesem Fall können wir die Methode <strong>resizable()</strong> verwenden und als Schlüsselwortargumente sowohl an <em>width</em> als auch an <em>height</em> jeweils den <strong>Wert False</strong> zuweisen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p data-css="tve-u-18f85d79d2a" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.maxsize(width=600, height=600)<br></span><strong></strong><strong>root.resizable(width=False, height=False)</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt erneut ausführen und versuchen, es zu vergrößern, sehen wir, es funktioniert <strong>nicht</strong>. Das Fenster lässt sich nicht einmal an der Ecke greifen. Mit der Methode resizable haben wir also dafür gesorgt, dass wir das Fenster weder in der Breite noch in der Höhe verändern können.</p><p>Wir könnten an dieser Stelle sogar festlegen, dass der Nutzer die <strong>Breite nicht verändern</strong> können soll, die <strong>Höhe hingegen schon</strong>. In diesem Fall weisen wir dem Schlüsselwortargument <strong>height</strong> nicht den Wert False zu, sondern den Wahrheitswert <strong>True</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-664706f05368b4" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-664706f05368c2">	<p data-css="tve-u-18f85d82c10" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root.maxsize(width=600, height=600)<br></span><strong></strong><strong>root.resizable(width=False, height=<span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">True</span>)</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm an dieser Stelle ausführen, stellen wir fest, dass wir die Höhe verändern können, die Breite allerdings nicht.</p><p>Darüber hinaus gelten beim Verändern der Höhe weiterhin die <strong>Einschränkungen</strong>, die wir über die Methoden <strong>minsize</strong> und <strong>maxsize</strong> definiert haben.</p><p>Wir können das Fenster also <strong>maximal</strong> auf eine Höhe von 250 Pixel <strong>verkleinern</strong> und <strong>höchstens</strong> auf eine Höhe von 600 Pixel <strong>strecken</strong>, weil wir das so mithilfe der Methodenaufrufe <strong>minsize</strong> und <strong>maxsize</strong> sowie den entsprechenden Schlüsselwortargumenten vorgegeben haben.</p><p>Damit hast du gelernt, wie man die Größe des GUI Fensters modifizieren kann!</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-664706f0536944" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-664706f0536956"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-664706f0536975" style=""><div class="tcb-flex-col" data-css="tve-u-664706f0536983" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-664706f05369a2" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-event-loop/" class="tcb-button-link tcb-plain-text"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-664706f05369b2" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-191fa6b047d" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-pack/" class="tcb-button-link tcb-plain-text" target="_blank"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-gui/">Python Tkinter Tutorial #4 &#8211; Das Tkinter GUI Hauptfenster</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #3 &#8211; Die Tkinter Event Loop</title>
		<link>https://www.programmieren-starten.de/blog/tkinter-event-loop/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 10:29:54 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=28998</guid>

					<description><![CDATA[<p>In diesem Beitrag werden wir uns das Konzept der Tkinter Event Loop genauer ansehen, damit du verstehst, wie sie funktioniert und weshalb sie so wichtig ist. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Was passiert beim Starten der Tkinter Event Loop?2. Wann kommt es zu einem Event?3. Was passiert, wenn die Tkinter Event Loop beendet wurde? 1. Was passiert [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-event-loop/">Python Tkinter Tutorial #3 &#8211; Die Tkinter Event Loop</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>In diesem Beitrag werden wir uns das Konzept der Tkinter <strong>Event Loop</strong> genauer ansehen, damit du verstehst, wie sie funktioniert und weshalb sie so wichtig ist.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=upFktEzQ_vQ&amp;t=135s&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-6644731f04a326" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #3 - Die Tkinter Event Loop" class="tcb-responsive-video" data-code="upFktEzQ_vQ" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="149129488" data-src="https://www.youtube-nocookie.com/embed/upFktEzQ_vQ?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-6644731f04a3c1" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-6644731f04a3e6">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Was passiert beim Starten der Tkinter Event Loop?</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Wann kommt es zu einem Event?</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Was passiert, wenn die Tkinter Event Loop beendet wurde?</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6644731f04a408" id="tab-con-10">1. Was passiert beim Starten der Tkinter Event Loop?</h2></div><div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Im letzten Beitrag hatten wir bereits festgestellt, dass das alleinige Erzeugen eines <strong>Tk-Objekts </strong><strong>nicht ausreicht</strong>, um eine funktionsfähige GUI-Anwendung laufen zu lassen. Zusätzlich müssen wir immer auf dem Objekt die sogenannte <strong>Event Loop starten</strong>. Das wird mit der Methode <em><strong>mainloop() </strong></em>umgesetzt.</p><p>Doch was genau passiert durch den Aufruf dieser Methode? Zum einen wird zunächst die Abarbeitung des Python Codes <strong>gestoppt</strong>. Das heißt: Folgen unterhalb des Methodenaufrufs im Programm noch weitere Anweisungen, werden diese erst mal <strong>nicht</strong>
<strong>ausgeführt</strong>.</p><p>Stattdessen startet die besagte Tkinter Event Loop, welche eine Endlosschleife darstellt, die mehrfach pro Sekunde <strong>überprüft</strong>, ob ein <strong>Event auftritt.</strong></p><p>Ein Event ist jegliche <strong>Interaktion</strong> des Nutzers mit der <strong>GUI</strong>.</p><p><em> </em>Wenn wir das Programm aus dem letzten Beitrag jetzt also noch mal starten, wird der Python Code im File bis zu dem Punkt abgearbeitet, an dem wir die Methode mainloop() aufrufen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f7ba739f0"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29003" alt="Der Python Code wird bis zum Start der Tkinter Event Loop abgearbeitet" data-id="29003" width="742" data-init-width="1904" height="197" data-init-height="506" title="tkinter-event-loop-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-1.png" data-width="742" data-height="197" style="aspect-ratio: auto 1904 / 506;" data-pagespeed-url-hash="585950427" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-1.png 1904w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-1-300x80.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-1-1024x272.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-1-768x204.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-1-1536x408.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Mit dem Aufruf der mainloop()-Methode stoppt die Abarbeitung des Python Files an dieser Stelle und die <strong>Event Loop übernimmt.</strong></p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6644731f04a408" id="t-1688547294220">2. Wann kommt es zu einem Event?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Damit öffnet sich das GUI-Fenster und das Programm <strong>prüft</strong> permanent, ob ein <strong>Event</strong> auftritt. Wenn der Nutzer die GUI an dieser Stelle einfach nur ansieht und keine Handlung vornimmt, entsteht logischerweise kein Event. Entschließt er sich allerdings dazu, mit der <strong>GUI zu interagieren</strong>, beispielsweise, indem er das GUI-Fenster größer zieht, dann erkennt die Event Loop ein <strong>Event</strong>.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f7baf8507"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29005" alt="Die Tkinter Event Loop erkennt ein Event, wenn der Nutzer die Größe des GUI-Fensters ändert" data-id="29005" width="742" data-init-width="1886" height="258" data-init-height="656" title="tkinter-event-loop-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-2.png" data-width="742" data-height="258" style="aspect-ratio: auto 1886 / 656;" data-pagespeed-url-hash="880450348" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-2.png 1886w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-2-300x104.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-2-1024x356.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-2-768x267.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-2-1536x534.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>In diesem Fall ist das Event die Veränderung der GUI-Fenstergröße. Im Hintergrund ist durch das Tk-Objekt implementiert, wie sich die GUI daraufhin verhalten soll. Dabei wurde in diesem Beispiel implementiert, dass sich das Fenster entsprechend vergrößert oder verkleinert, sobald der Nutzer mit der Maus daran zieht.</p><p>Ein weiteres Event würde stattfinden, wenn der Nutzer innerhalb der <strong>GUI</strong> etwas <strong>anklickt</strong>. Das wäre ein sogenanntes <em><strong>Klick-Event</strong></em>. Ebenfalls im Tk-Objekt implementiert ist, dass sich das Fenster schließt, wenn der Nutzer oben links auf das Kreuzsymbol klickt.</p><p>Was dabei eigentlich passiert ist, dass sich die Event Loop <strong>beendet</strong>.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6644731f04a485" id="t-1689865778143">3. Was passiert, wenn die Tkinter Event Loop beendet wurde?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Sobald die Event Loop beendet ist, geht es im Python File <strong>nach</strong> dem <strong>Methodenaufruf</strong> mainloop() <strong>ganz normal weiter</strong>. Da im aktuellen Beispiel nach dem Methodenaufruf kein Code mehr folgt, wird das Programm beendet.</p><p>Wir könnten nun unter dem Methodenaufruf mainloop() auch noch mithilfe von print eine <strong>Konsolenausgabe</strong> veranlassen, die den Text „Testausgabe“ anzeigen soll:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6644731f04a4a6" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6644731f04a4c6">	<p style="" data-css="tve-u-18f7bb0f9fa">root.mainloop()</p><p style="color: var(--tcb-skin-color-2) !important; --tcb-applied-color: var$(--tcb-skin-color-2) !important;"><strong>print("Testausgabe")</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm dann erneut ausführen, sehen wir, dass die Ausführung des Python Codes im File an der <strong>Stelle</strong>, an der wir die <strong>mainloop-Methode</strong> aufrufen, tatsächlich <strong>stoppt</strong>.</p><p>Denn wie wir sehen, gibt uns das Programm aktuell den String „Testausgabe“ noch nicht auf der Konsole aus:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f7bb41986"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29009" alt="Der Text &quot;Testausgabe&quot; erscheint noch nicht in der Konsole" data-id="29009" width="742" data-init-width="1788" height="80" data-init-height="192" title="tkinter-event-loop-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-3.png" data-width="742" data-height="80" style="aspect-ratio: auto 1788 / 192;" data-pagespeed-url-hash="1174950269" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-3.png 1788w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-3-300x32.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-3-1024x110.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-3-768x82.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-3-1536x165.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Erst wenn wir das Fenster schließen, das sich geöffnet hat und damit die Event Loop beenden, arbeitet das Programm den Code ab, der danach folgt.</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f7bb6d6d1"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29011" alt="Wenn wir das Fenster schließen, beenden wir die Tkinter Event Loop" data-id="29011" width="742" data-init-width="984" height="202" data-init-height="268" title="tkinter-event-loop-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-4.png" data-width="742" data-height="202" style="aspect-ratio: auto 984 / 268;" data-pagespeed-url-hash="1469450190" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-4.png 984w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-4-300x82.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-4-768x209.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Daraufhin sehen wir also „Testausgabe“ in der Konsole:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f7bb88841"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-29013" alt="Erst daraufhin sehen wir &quot;Testausgabe&quot; in der Konsole" data-id="29013" width="742" data-init-width="1456" height="93" data-init-height="182" title="tkinter-event-loop-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-5.png" data-width="742" data-height="93" style="aspect-ratio: auto 1456 / 182;" data-pagespeed-url-hash="1763950111" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-5.png 1456w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-5-300x38.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-5-1024x128.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/tkinter-event-loop-5-768x96.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Damit weißt du jetzt schon mal grob, was die Event Loop macht und wofür es sie gibt.</p><p>Kurzgesagt handelt es sich dabei um eine Endlosschleife, die konstant prüft, ob ein Event auftritt. Wenn ein <strong>Event</strong> auftreten sollte, können wir nach Belieben mithilfe unseres Programmcodes <strong>darauf reagieren</strong>.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-6644731f04a6b4" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-6644731f04a6d5"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-6644731f04a6e6" style=""><div class="tcb-flex-col" data-css="tve-u-6644731f04a709" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-6644731f04a719" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/python-tkinter/" class="tcb-button-link tcb-plain-text"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-6644731f04a731" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-191fa5a65a2" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-gui/" class="tcb-button-link tcb-plain-text"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter-event-loop/">Python Tkinter Tutorial #3 &#8211; Die Tkinter Event Loop</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #2 &#8211; Grundaufbau einer Tkinter Anwendung</title>
		<link>https://www.programmieren-starten.de/blog/python-tkinter/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 10:10:14 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=28873</guid>

					<description><![CDATA[<p>Im letzten Beitrag hast du bereits gelernt, was Tkinter ist und welche Vorbereitungen wir treffen müssen, um in unseren Projekten mit Python Tkinter verwenden zu können. In diesem Blogartikel werde ich dir anhand des „Hallo Welt“-Programms zeigen, wie wir von Grund auf eine Tkinter-Applikation bauen können und aus welchen Komponenten sich diese zusammensetzt. Inhaltsverzeichnis Inhaltsverzeichnis [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/python-tkinter/">Python Tkinter Tutorial #2 &#8211; Grundaufbau einer Tkinter Anwendung</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Im letzten Beitrag hast du bereits gelernt, was Tkinter ist und welche <strong>Vorbereitungen</strong> wir treffen müssen, um in unseren Projekten mit Python Tkinter verwenden zu können. In diesem Blogartikel werde ich dir anhand des „Hallo Welt“-Programms zeigen, wie wir von Grund auf eine <strong>Tkinter-Applikation</strong>
<strong>bauen</strong> können und aus welchen Komponenten sich diese zusammensetzt.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=idYXmWVESeo&amp;list=PL_pqkvxZ6ho23EXCx7HJtOaUZ-mDl_GXY&amp;index=2&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-6638a69d808af7" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #2 - Grundaufbau einer Tkinter Anwendung" class="tcb-responsive-video" data-code="idYXmWVESeo" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" loading="lazy" data-gtm-yt-inspected-43272814_191="true" id="515257195" data-src="https://www.youtube-nocookie.com/embed/idYXmWVESeo?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-6638a69d808ba8" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-6638a69d808bd7">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Wie ist dieses Python Tkinter Tutorial aufgebaut?</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Was haben wir im letzten Tutorial umgesetzt?</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Das Hauptfenster</a></div><div class="tve_ct_level1"><a href="#t-1708085968254" rel="nofollow">4. Python Tkinter Widgets</a></div><div class="tve_ct_level1"><a href="#t-1708699560435" rel="nofollow">5. Mit Python Tkinter ein GUI-Fenster erzeugen</a></div><div class="tve_ct_level1"><a href="#t-1712218766359" rel="nofollow">6. Die Python Tkinter Event Loop</a></div><div class="tve_ct_level1"><a href="#t-1714989394127" rel="nofollow">7. Ein Label-Widget mit Tkinter erstellen</a></div><div class="tve_ct_level2"><a href="#t-1715066539787" rel="nofollow">Das erste Argument des Label-Widgets</a></div><div class="tve_ct_level2"><a href="#t-1715066539788" rel="nofollow">Was sind Frame Widgets?</a></div><div class="tve_ct_level2"><a href="#t-1715066539789" rel="nofollow">Das zweite Argument des Label-Widgets</a></div><div class="tve_ct_level1"><a href="#t-1714989394128" rel="nofollow">8. Der Layout-Manager „pack“</a></div><div class="tve_ct_level1"><a href="#t-1714989394129" rel="nofollow">9. Die Fenstergröße anpassen</a></div><div class="tve_ct_level1"><a href="#t-1714989394130" rel="nofollow">10. Die Abkürzung „tk“ als Alias setzen</a></div><div class="tve_ct_level1"><a href="#t-1714989394131" rel="nofollow">11. Zusammenfassung</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6638a69d808be1" id="tab-con-10">1. Wie ist dieses Python Tkinter Tutorial aufgebaut?</h2></div><div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Wir werden zunächst kurz das bereits Gelernte aus dem letzten Beitrag wiederholen und uns im Anschluss daran ansehen, welche Schritte umgesetzt werden müssen, um von Grund auf ein eigenes <strong>GUI-Fenster</strong> samt Inhalt zu <strong>erzeugen</strong>.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6638a69d808be1" id="t-1688547294220">2. Was haben wir im letzten Tutorial umgesetzt?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Zunächst haben wir in der ersten Zeile unseres Programms das <strong>Modul Tkinter</strong>
<strong>importiert</strong> und anschließend im Namensraum von Tkinter die <strong>_test-Methode</strong> aufgerufen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e1c2db1"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28879" alt="wir haben im Namensraum von Python Tkinter die test-Methode aufgerufen" data-id="28879" width="742" data-init-width="1272" height="124" data-init-height="212" title="python-tkinter-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-1.png" data-width="742" data-height="124" style="aspect-ratio: auto 1272 / 212;" data-pagespeed-url-hash="83805960" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-1.png 1272w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-1-300x50.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-1-1024x171.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-1-768x128.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Die _test-Methode sorgt dafür, dass ein <strong>Fenster</strong> erzeugt wird. Das sehen wir, wenn wir das Programm einmal ausführen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e28009e"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28882" alt="Durch die test-Methode in Python Tkinter wird ein Fenster erzeugt" data-id="28882" width="742" data-init-width="1008" height="191" data-init-height="260" title="python-tkinter-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-2.png" data-width="742" data-height="191" style="aspect-ratio: auto 1008 / 260;" data-pagespeed-url-hash="378305881" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-2.png 1008w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-2-300x77.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-2-768x198.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Innerhalb dieses Fensters befindet sich der Text „This is Tcl/Tk version 8.6“ und darunter folgt eine weitere Zeile mit Text. Dann kommt ein <strong>Button</strong> mit der Aufschrift „Click me!“, auf welchen wir klicken können. Bei jedem Klick darauf erscheinen eckige Klammern um den Text:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e29befc"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28885" alt="Wenn wir auf den Button klicken, erscheinen eckige Klammern" data-id="28885" width="742" data-init-width="1912" height="219" data-init-height="564" title="python-tkinter-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-3.png" data-width="742" data-height="219" style="aspect-ratio: auto 1912 / 564;" data-pagespeed-url-hash="672805802" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-3.png 1912w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-3-300x88.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-3-1024x302.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-3-768x227.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-3-1536x453.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Je öfter wir klicken, desto mehr eckige Klammern tauchen um die Button-Aufschrift auf.</p><p>Darunter sehen wir einen <strong>QUIT-Button</strong>, über welchen wir die Applikation schließen und somit das Programm beenden können.</p><p>Denn wenn wir testweise auf QUIT klicken, sehen wir, dass das Fenster verschwunden und das <strong>Programm vollständig durchgelaufen</strong> ist. Das lässt sich an der folgenden Zeile in der Konsole erkennen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e33eef0"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28888" alt="In der Konsole sehen wir, dass das Programm durchgelaufen ist" data-id="28888" width="742" data-init-width="1804" height="100" data-init-height="242" title="python-tkinter-4" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-4.png" data-width="742" data-height="100" style="aspect-ratio: auto 1804 / 242;" data-pagespeed-url-hash="967305723" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-4.png 1804w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-4-300x40.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-4-1024x137.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-4-768x103.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-4-1536x206.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das Programm wird im Übrigen genauso beendet, wenn wir oben im Fenster auf das <strong>x-Symbol </strong>klicken:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e36ed5e"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28891" alt="Unser Python Tkinter Programm lässt sich auch über das x-Symbol beenden" data-id="28891" width="742" data-init-width="1722" height="176" data-init-height="408" title="python-tkinter-5" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-5.png" data-width="742" data-height="176" style="aspect-ratio: auto 1722 / 408;" data-pagespeed-url-hash="1261805644" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-5.png 1722w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-5-300x71.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-5-1024x243.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-5-768x182.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-5-1536x364.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wie du sehen kannst, setzt die <strong>test-Methode</strong> einiges im Hintergrund um und baut uns bereits eine erste <strong>funktionsfähige GUI </strong>zusammen. Anhand dieser können wir bereits die wichtigsten Grundbegriffe sowie den groben Aufbau einer Python Tkinter GUI-Anwendung erklären.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6638a69d808c10" id="t-1689865778143">3. Das Hauptfenster</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Bei jeder GUI müssen wir zunächst dafür sorgen, dass sich das <strong>Hauptfenster</strong> öffnet. Dabei handelt es sich um das eigentliche Fenster, das man wie die Fenster anderer gängiger Computeranwendungen vergrößern, minimieren und über das Kreuzsymbol schließen kann.</p><p>Das bedeutet, dass wir auch unser Python Tkinter Fenster, das beim Ausführen des Programms erscheint, <strong>schließen</strong> können. Darüber hinaus lässt es sich minimieren und vergrößern, sodass es den gesamten Bildschirm einnimmt.</p><p>Diese Möglichkeiten kennen wir auch von allen anderen Anwendungen, die bereits auf unserem Computer laufen.</p><p>Sobald wir das Hauptfenster selbst erstellt haben, müssen wir dieses noch mit sogenannten <strong>Widgets</strong> befüllen.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6638a69d808c10" id="t-1708085968254">4. Python Tkinter Widgets</h2></div><div class="thrv_wrapper thrv_text_element"><blockquote class="">Widgets werden auch häufig als <strong>Controls</strong> bzw. als Steuerelemente bezeichnet. Gerade im Tkinter-Umfeld ist der gängige Begriff allerdings „<strong>Widget</strong>“.</blockquote><p>Der Text, den wir beim Ausführen des Programms zu Gesicht bekommen, ist nichts anderes als ein Widget:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e4203ac"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28894" alt="Der Text auf der Abbildung ist ein Widget" data-id="28894" width="742" data-init-width="1912" height="146" data-init-height="376" title="python-tkinter-6" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-6.png" data-width="742" data-height="146" style="aspect-ratio: auto 1912 / 376;" data-pagespeed-url-hash="1556305565" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-6.png 1912w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-6-300x59.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-6-1024x201.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-6-768x151.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-6-1536x302.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Nämlich ein sogenanntes <strong>Label Widget.</strong> Dabei handelt es sich um einen Baustein, den wir in unserer GUI verwenden können, um dort einfachen <strong>Text</strong> anzuzeigen.</p><p>Auch der <strong>„</strong><strong>Click me!“-Button</strong> darunter ist ein Widget, genauer gesagt ein sogenanntes <strong>Button-Widget.</strong></p><p>Mit dieser Art von Widget steht uns ein weiterer Baustein zur Verfügung, den wir in unserem Fenster platzieren können.</p><p>Neben Labels und Buttons gibt es noch zahlreiche <strong>weitere</strong> unterschiedliche Widgets. Einen Teil davon werden wir uns in diesem Crashkurs noch ansehen.</p><p>Falls du alle Widgets im Detail kennenlernen möchtest, kann ich dir an dieser Stelle unseren <strong>Python Tkinter Masterkurs</strong> empfehlen. Denn der Masterkurs geht bei allen Themen, die wir auch hier behandeln, noch deutlich weiter in die Tiefe. Zudem werden darin alle anderen <strong>Widgets</strong>, die wir hier nicht behandeln und auch weitere <strong>fortgeschrittene Themen </strong>im Detail besprochen.</p><p>Damit du ein besseres Verständnis dafür bekommst, wie das Ganze funktioniert, werden wir uns in diesem Beitrag eine <strong>GUI-Anwendung</strong> von Grund auf selbst bauen. Innerhalb des Fensters soll dann lediglich der Text <strong>„Hallo Welt“</strong> angezeigt werden.</p><p>Hierzu löschen wir im ersten Schritt den test-Methodenaufruf:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="" data-css="tve-u-18f4e450648"><strong><span style="text-decoration: line-through;">tkinter._test()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6638a69d808c36" id="t-1708699560435" style="">5. Mit Python Tkinter ein GUI-Fenster erzeugen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Jetzt erzeugen wir uns erst mal ein GUI-Fenster. Doch wie funktioniert das? Wir müssen hierzu lediglich Folgendes schreiben:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="" data-css="tve-u-18f4e4a6633"><strong>tkinter.Tk()</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Mit dieser Zeile erzeugt das Programm ein sogenanntes <strong>Tk-Objekt</strong>, welches das Hauptfenster unserer GUI darstellt. Die <strong>Referenz</strong> auf dieses Objekt speichern wir jetzt in einer <strong>Variable</strong>, die wir beispielhaft „root“ nennen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="" data-css="tve-u-18f4e4c424d"><strong>root&nbsp; = <span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;" data-css="tve-u-18f521799a7">tkinter.Tk()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Damit können wir im weiteren Verlauf des Programms über diese Variable auf das gerade erzeugte Tk-Objekt zugreifen. Mit dieser einzigen Zeile Code haben wir bereits das komplette <strong>GUI-Fenster erzeugt</strong>.</p><p>Wenn wir das Programm an dieser Stelle nun mal ausführen, sehen wir allerdings, dass gar kein GUI-Fenster erscheint. Das liegt daran, dass wir noch die sogenannte Tkinter <strong>Event Loop</strong> starten müssen.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6638a69d808c36" id="t-1712218766359" style="">6. Die Python Tkinter Event Loop</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir starten diese über das Tk-Objekt, auf welches wir mit der Variable root referenzieren. Dazu schreiben wir also einfach noch die folgende Anweisung:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p data-css="tve-u-18f4e56e8ca" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root &nbsp;= tkinter.Tk()</span><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;">root.mainloop()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Damit rufen wir die<strong> mainloop-Methode</strong> auf, die dafür sorgt, dass die besagte Tkinter <strong>Event Loop</strong> gestartet wird.</p><p>Was die Event Loop im Detail macht, werden wir uns dann im nächsten Beitrag dieser Tutorial-Reihe ansehen. Wenn wir das Programm an dieser Stelle ausführen, siehst du, dass jetzt tatsächlich ein <strong>GUI-Fenster</strong> erscheint:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e58057c"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28904" alt="Die Python Tkinter Event Loop wird gestartet und ein GUI Fenster erscheint" data-id="28904" width="742" data-init-width="1750" height="154" data-init-height="364" title="python-tkinter-7" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-7.png" data-width="742" data-height="154" style="aspect-ratio: auto 1750 / 364;" data-pagespeed-url-hash="1850805486" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-7.png 1750w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-7-300x62.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-7-1024x213.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-7-768x160.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-7-1536x319.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wir haben es also geschafft und eigenständig ein GUI-Fenster erzeugt!</p><p>Dieses Fenster ist jetzt auch schon voll funktionsfähig und bietet wieder die Möglichkeit, es zu maximieren, zu minimieren und es über das Kreuzsymbol zu schließen.</p><p>Jetzt, da wir das Hauptfenster unserer GUI haben, müssen wir noch sogenannte <strong>Widgets</strong> darin <strong>platzieren</strong>.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6638a69d808c36" style="" id="t-1714989394127">7. Ein Label-Widget mit Tkinter erstellen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Da wir in diesem ersten Programm lediglich den Text „Hallo Welt“ ausgeben möchten, benötigen wir ein sogenanntes<strong> Label-Widget.</strong></p><p>Ein solches Label-Widget-Objekt können wir uns ganz einfach mit Tkinter erzeugen. Dafür schreiben wir folgendes:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root &nbsp;= tkinter.Tk()</span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>tkinter.Label()</strong></p><p style="" data-css="tve-u-18f4e5db569">root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><p>Mit dieser Zeile Code erzeugen wir uns ein <strong>Objekt</strong> von der <strong>Klasse Label</strong>, welchem wir im Konstruktoraufruf direkt noch Argumente mitübergeben können.</p><h3 class="" id="t-1715066539787"><strong>Das erste Argument des Label-Widgets</strong></h3><p>Das <strong>erste</strong>
<strong>Argument</strong>, das wir angeben, ist der zugehörige <strong>Parent</strong>. In unserem Fall ist das die Referenz auf das TK-Objekt, welches unser <strong>Hauptfenster</strong> darstellt. Wir schreiben also zunächst zwischen die Klammern „root“:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root &nbsp;= tkinter.Tk()</span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>tkinter.Label(<strong><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">root</span></strong>)</strong></p><p style="" data-css="tve-u-18f4e5db569">root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element"><p>Damit legen wir fest, dass wir das Widget im <strong>übergeordneten Hauptfenster</strong> platzieren möchten. Jedes Mal, wenn wir ein Widget erzeugen, geben wir als erstes Argument immer den Parent an.</p><p>Innerhalb dieses Crashkurses werden wir an der Stelle immer „root“ angeben, da das Hauptfenster erst mal der <strong>einzige</strong> Container ist, in dem wir Widgets platzieren können.</p><h3 class="" id="t-1715066539788"><strong>Was sind Python Tkinter Frame Widgets?</strong></h3><p>Sobald du dich aber weiter mit Tkinter auseinandersetzt, wirst du auch noch die sogenannten <strong>Frame Widgets</strong> kennenlernen. Dabei handelt es sich um weitere <strong>Untercontainer</strong>, in welchen wir ebenfalls Widgets platzieren können.</p><p>Dann hätten wir beispielsweise die Möglichkeit, innerhalb des Hauptfensters zwei weitere <strong>Container</strong> in Form von <strong>Frames</strong> zu setzen. Innerhalb dieser beiden weiteren Container könnten wir dann jeweils nochmals Widgets platzieren. In diesem Fall hätten die beiden Container das <strong>Hauptfenster als Parent</strong> und die Widgets hätten einen der beiden Container, die im Hauptfenster platziert sind, als Parent.</p><p>Das klingt zwar im ersten Moment ziemlich kompliziert, aber sobald du etwas Übung mit Tkinter hast, wirst du das Ganze automatisch und intuitiv anwenden können.</p><p>Wie bereits erwähnt, geben wir als Parent lediglich „<strong>root</strong>“ an.</p><h3 class="" id="t-1715066539789"><strong>Das zweite Argument des Label-Widgets</strong></h3><p>An <strong>zweiter Stelle</strong> übergeben wir das <strong>Schlüsselwort-Argument „text“</strong>. Der String „Hallo Welt“, den wir jetzt in unserem Beispiel zuweisen, wird später im Label-Widget als Text angezeigt.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root &nbsp;= tkinter.Tk()</span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>tkinter.Label(<strong><strong>root, <span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">text="Hallo Welt"</span></strong></strong>)</strong></p><p style="" data-css="tve-u-18f4e5db569">root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Dieses Label-Objekt weisen wir jetzt noch einer <strong>Variable</strong> zu, damit wir im weiteren Programmverlauf auch <strong>Zugriff</strong> darauf haben. Die Variable nennen wir beispielhaft label1:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">root &nbsp;= tkinter.Tk()</span></p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong><span style="--tcb-applied-color: var$(--tcb-color-2) !important; color: var(--tcb-color-2) !important;">label1 =</span></strong><strong>&nbsp;tkinter.Label(root, text="Hallo Welt")</strong></p><p style="" data-css="tve-u-18f4e6a8944">root.mainloop()</p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir das Programm jetzt ausführen, fällt auf, dass wir den Text „Hallo Welt“ bisher noch <strong>nirgendwo</strong> <strong>sehen</strong> können:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e6bf324"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28914" alt="Beim Ausführen des Python Tkinter Programms können wir den Text noch nirgendwo sehen" data-id="28914" width="742" data-init-width="1730" height="203" data-init-height="474" title="python-tkinter-8" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-8.png" data-width="742" data-height="203" style="aspect-ratio: auto 1730 / 474;" data-pagespeed-url-hash="2145305407" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-8.png 1730w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-8-300x82.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-8-1024x281.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-8-768x210.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-8-1536x421.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das liegt daran, dass wir der GUI noch mitteilen müssen, <strong>wie das Widget</strong> innerhalb des Parents, also in diesem Fall innerhalb des Hauptfensters <strong>angeordnet</strong> werden soll.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6638a69d808c36" style="" id="t-1714989394128">8. Der Layout-Manager „pack“</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Das funktioniert mithilfe sogenannter <strong>Layout-Manager</strong>, von welchen unterschiedliche Arten existieren. Für unser Beispiel werden wir den einfachsten Layout-Manager verwenden, welchen wir mit der <strong>Methode „pack“</strong> aufrufen können.</p><p>Wir geben also in der nächsten Zeile Code an, dass wir auf dem Label-Objekt die Methode pack aufrufen möchten.</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="color: var(--tcb-skin-color-5) !important; --tcb-applied-color: var$(--tcb-skin-color-5) !important;">root&nbsp; = tkinter.Tk()</p><p data-css="tve-u-18f4e6e58a8" style=""><span style="--tcb-applied-color: var$(--tcb-skin-color-5) !important; color: var(--tcb-skin-color-5) !important;">label1 = tkinter.Label(root, text="Hallo Welt")</span><br><strong><span style="--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;">label1.pack()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Beim erneuten Ausführen des Programms sehen wir, dass das Label nun tatsächlich in der GUI platziert wurde und der Text „Hallo Welt“ erscheint:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e704616"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28920" alt="Jetzt erscheint der Text &quot;Hallo Welt&quot;" data-id="28920" width="742" data-init-width="1570" height="133" data-init-height="282" title="python-tkinter-9" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-9.png" data-width="742" data-height="133" style="aspect-ratio: auto 1570 / 282;" data-pagespeed-url-hash="2439805328" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-9.png 1570w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-9-300x54.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-9-1024x184.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-9-768x138.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-9-1536x276.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das Fenster ist jetzt automatisch <strong>nur so groß wie der Text</strong>, sodass es genau das anzeigen kann, was sich in der GUI befindet.</p><p>Aktuell befindet sich innerhalb des Hauptfensters lediglich das eben erzeugte Label-Widget, weshalb das Fenster auch nur genauso groß wie das <strong>Label</strong> ist. In diesem Fall ist das sehr klein, da der Text „Hallo Welt“ schließlich nicht sonderlich viel Platz benötigt.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6638a69d808c36" style="" id="t-1714989394129">9. Die Fenstergröße anpassen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir haben allerdings die Möglichkeit, das Fenster zu <strong>vergrößern</strong>, indem wir in eine Ecke klicken, woraufhin ein Pfeil erscheint und wir das Fenster mit der Maus größer ziehen können. So wie wir es bereits von anderen Anwendungen kennen, bei welchen wir ebenfalls die Größe mithilfe der Maus beliebig anpassen können.</p><p>Wenn wir das Fenster jetzt so vergrößern, wie ich es gerade getan habe, dann stellen wir fest, dass das Label durchgehend ganz <strong>oben zentriert angezeigt</strong> wird. &nbsp;</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e7263fd"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28924" alt="Das Label wird in Python Tkinter durchgehend oben zentriert" data-id="28924" width="742" data-init-width="1676" height="226" data-init-height="510" title="python-tkinter-10" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-10.png" data-width="742" data-height="226" style="aspect-ratio: auto 1676 / 510;" data-pagespeed-url-hash="2829307346" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-10.png 1676w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-10-300x91.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-10-1024x312.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-10-768x234.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-10-1536x467.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das liegt daran, dass der Layout-Manager <em><strong>pack</strong></em> <strong>standardmäßig</strong> dafür sorgt und es auf diese Weise <strong>anordnet</strong>. Wir könnten die Ausrichtung des Labels allerdings <strong>modifizieren</strong>, indem wir dem Layout-Manager mitteilen, dass es an einer anderen Stelle auf dem Fenster platziert werden soll.</p><p>Wie das genau funktioniert, wirst du noch in <strong>späteren Beiträgen</strong> ausführlich lernen. <br>So viel zum ersten „Hallo Welt“-Programm.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6638a69d808c36" style="" id="t-1714989394130">10. Die Abkürzung „tk“ als Alias setzen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wenn wir uns den Code, den wir gerade geschrieben haben, noch einmal ansehen, wirst du vermutlich feststellen, dass wir bereits in diesem kurzen Programm <strong>sehr oft „tkinter“</strong> schreiben mussten.</p><p>Der Grund dafür ist, dass sich unter anderem alle <strong>Funktionen</strong> und <strong>Klassen</strong> innerhalb des <strong>Tkinter-Namensraums </strong>befinden, den wir oben in der ersten Zeile importiert haben. Daher werden wir es uns jetzt etwas einfacher machen, indem wir den Namen „tkinter“ mit <strong>„tk“ abkürzen</strong>.</p><p>Damit müssen wir zukünftig anstatt „tkinter.“ nur noch „tk.“ schreiben, was uns sehr viel Zeit sparen und das Programm übersichtlicher machen wird.</p><p>Wie das funktioniert, weißt du bereits, wenn du den Python Masterkurs belegt haben solltest, denn wir müssen lediglich beim <strong>Import einen eigenen Alias vergeben.</strong> Das lässt sich folgendermaßen umsetzen:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="" data-css="tve-u-18f4e757b48"><strong><span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;">import</span> tkinter as tk</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Sobald wir das getan haben, wird „tkinter.“ überall im Programm rot unterkringelt:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e788388"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28928" alt="Das Wort tkinter wird jetzt im gesamten Programm unterkringelt" data-id="28928" width="742" data-init-width="1422" height="229" data-init-height="438" title="python-tkinter-11" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-11.png" data-width="742" data-height="229" style="aspect-ratio: auto 1422 / 438;" data-pagespeed-url-hash="3123807267" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-11.png 1422w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-11-300x92.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-11-1024x315.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-11-768x237.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Das liegt daran, dass der Namensraum jetzt nicht mehr „tkinter“ heißt, sondern durch den Alias den Namen <strong>„tk“</strong> trägt.</p><p>Wir müssen jetzt also noch überall im Code den Namen „tkinter“ durch „tk“ ersetzen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18f4e7a451d"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28931" alt="Wir ersetzen im Python Tkinter Code den Namen &quot;tkinter&quot; durch &quot;tk&quot;" data-id="28931" width="742" data-init-width="1500" height="195" data-init-height="394" title="python-tkinter-12" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-12.png" data-width="742" data-height="195" style="aspect-ratio: auto 1500 / 394;" data-pagespeed-url-hash="3418307188" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-12.png 1500w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-12-300x79.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-12-1024x269.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/05/python-tkinter-12-768x202.png 768w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Beim erneuten Ausführen des Programms sehen wir, dass es wieder wie zuvor funktioniert.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6638a69d808c36" style="" id="t-1714989394131">11. Zusammenfassung</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Du hast in diesem Beitrag anhand des „Hallo Welt“-Programms also den groben Prozess kennengelernt, mithilfe dessen man eine GUI-Anwendung in Python mit Tkinter erzeugen kann.</p><p>Im ersten Schritt müssen wir dafür das <strong>Tkinter-Modul</strong> importieren:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong><span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;" data-css="tve-u-18f4e7b2d54">import</span> tkinter <span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;" data-css="tve-u-18f4e7b2d55">as</span> tk</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Im zweiten Schritt erzeugen wir dann ein <strong>Hauptfenster</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="" data-css="tve-u-18f4e7bcea4"><strong>root = tk.Tk()</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Daraufhin fügen wir im dritten Schritt die gewünschten <strong>Widgets</strong>, wie beispielsweise Labels und Buttons in das <strong>Hauptfenster ein</strong>:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-18f4e7c90e5">label1 = tk.Label(root, text="Hallo Welt")</span></strong><br><strong><span style="--tcb-applied-color: var$(--tcb-color-1) !important; color: var(--tcb-color-1) !important;" data-css="tve-u-18f4e7c90e7">label1.pack()</span></strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Weitere Widgets werden wir im Laufe des Kurses noch kennenlernen.</p><p>Im vierten Schritt müssen wir dann noch auf dem <strong>Objekt des Hauptfensters</strong> die <strong>E</strong><strong>vent</strong><strong>-Loop</strong> starten:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6638a69d808c48" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6638a69d808c57">	<p style="" data-css="tve-u-18f4e7e3307"><strong>root.mainloop()</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Und damit ist die GUI-Anwendung auch schon fertig!</p><p>Im nächsten Beitrag werden wir uns die <strong>Event-Loop</strong> noch etwas <strong>detaillierter</strong> ansehen, damit du auch verstehst, was diese eigentlich macht. Dabei handelt es sich nämlich um ein wichtiges Grundverständnis, welches beim Bauen von Applikationen mit Tkinter unerlässlich ist.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-6638a69d808cd6" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-6638a69d808ce9"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-6638a69d808cf1" style=""><div class="tcb-flex-col" data-css="tve-u-6638a69d808d13" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-6638a69d808d31" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter/" class="tcb-button-link tcb-plain-text"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Vorheriger Artikel</span></span> </a> </div></div></div><div class="tcb-flex-col" data-css="tve-u-6638a69d808d49" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-191fa4f9ba1" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/tkinter-event-loop/" class="tcb-button-link tcb-plain-text"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/python-tkinter/">Python Tkinter Tutorial #2 &#8211; Grundaufbau einer Tkinter Anwendung</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Tkinter Tutorial #1 &#8211; Was ist Tkinter?</title>
		<link>https://www.programmieren-starten.de/blog/tkinter/</link>
		
		<dc:creator><![CDATA[Fabienne]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 09:28:19 +0000</pubDate>
				<category><![CDATA[Tkinter]]></category>
		<guid isPermaLink="false">https://programmieren-starten.de/?p=28792</guid>

					<description><![CDATA[<p>Mithilfe von Tkinter lassen sich in Python kinderleicht grafische Benutzeroberflächen programmieren. Falls du schon immer lernen wolltest, wie du deinen eigenen Anwendungen ein individuelles Aussehen verleihen kannst, bist du bei diesem Blogartikel genau richtig. In diesem Crashkurs werde ich dir nämlich Schritt für Schritt zeigen, wie du genau das umsetzen kannst. Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis1. Was [&#8230;]</p>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter/">Python Tkinter Tutorial #1 &#8211; Was ist Tkinter?</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Mithilfe von Tkinter lassen sich in Python kinderleicht <strong>grafische Benutzeroberflächen</strong> programmieren. Falls du schon immer lernen wolltest, wie du deinen eigenen Anwendungen ein <strong>individuelles</strong>
<strong>Aussehen</strong> verleihen kannst, bist du bei diesem Blogartikel genau richtig. In diesem Crashkurs werde ich dir nämlich Schritt für Schritt zeigen, wie du genau das umsetzen kannst.</p></div><div class="thrv_responsive_video thrv_wrapper" data-type="youtube" data-rel="0" data-modestbranding="0" data-aspect-ratio="16:9" data-aspect-ratio-default="0" data-float-visibility="mobile" data-url="https://www.youtube.com/watch?v=d2HT7i9OrHE&amp;ab_channel=ProgrammierenStarten" data-no-cookie="1" style="" data-css="tve-u-6614f195878f41" data-float-position="top-left" data-float-width-d="300px" data-float-padding1-d="25px" data-float-padding2-d="25px">
	

	<div class="tve_responsive_video_container" style="padding-bottom: 56.25%;">
		<div class="tcb-video-float-container"><div class="video_overlay"></div><iframe title="Python Tkinter Tutorial Deutsch #1 - Was ist Tkinter? (GUIs in Python)" class="tcb-responsive-video" data-code="d2HT7i9OrHE" data-hash="undefined" data-provider="youtube" frameborder="0" allowfullscreen="" data-gtm-yt-inspected-43272814_191="true" id="203375025" data-src="https://www.youtube-nocookie.com/embed/d2HT7i9OrHE?rel=0&amp;modestbranding=0&amp;controls=1&amp;showinfo=1&amp;fs=1&amp;wmode=transparent&amp;enablejsapi=1"></iframe></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 data-css="tve-u-6614f195878ff6" id="tab-con-9" class="">Inhaltsverzeichnis</h2></div><div class="thrv_wrapper thrv_contents_table" data-columns="1" data-headers="h1,h2,h3" data-id="ljfnlwz0">
	<div class="tve_contents_table">
		<span class="tve_ct_title" data-css="tve-u-6614f195879010">Inhaltsverzeichnis</span>
		<div class="tve_ct_content tve_clearfix"><div class="ct_column"><div class="tve_ct_level1"><a href="#tab-con-9" rel="nofollow">Inhaltsverzeichnis</a></div><div class="tve_ct_level1"><a href="#tab-con-10" rel="nofollow">1. Was wirst du in diesem Crashkurs lernen?</a></div><div class="tve_ct_level1"><a href="#t-1688547294220" rel="nofollow">2. Was ist Tkinter?</a></div><div class="tve_ct_level1"><a href="#t-1689865778143" rel="nofollow">3. Tcl/Tk</a></div><div class="tve_ct_level1"><a href="#t-1708085968254" rel="nofollow">4. Welchen Vorteil haben wir durch Tkinter?</a></div><div class="tve_ct_level1"><a href="#t-1708699560435" rel="nofollow">5. Voraussetzungen für die Nutzung</a></div><div class="tve_ct_level1"><a href="#t-1712218766359" rel="nofollow">6. Tkinter importieren und testen</a></div></div></div>
	</div>
</div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6614f195879020" id="tab-con-10">1. Was wirst du in diesem Crashkurs lernen?</h2></div><div class="thrv_wrapper thrv_text_element tve_empty_dropzone"><p>Du wirst in diesem Crashkurs Schritt für Schritt lernen, wie du eigene GUI-Anwendungen, also <strong>Anwendungen mit grafischen Benutzeroberflächen</strong>, in Python programmieren kannst.</p><p>Im ersten Schritt werde ich dir zeigen, was <strong>Tkinter</strong> ist und im Anschluss daran werden wir gemeinsam ein kurzes Testprogramm schreiben, mithilfe dessen wir ganz einfach prüfen können, ob alle Komponenten korrekt auf deinem Computer <strong>installiert</strong> sind.</p><p>Sollte das der Fall sein, hast du alle notwendigen Vorbereitungen getroffen, um im <strong>nächsten Beitrag</strong> direkt durchstarten zu können.</p><p>Beginnen wir also direkt mit der wichtigen Frage:</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6614f195879020" id="t-1688547294220">2. Was ist Tkinter?</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Um diese Frage beantworten zu können, müssen wir uns das Ganze aus einer High Level Perspektive ansehen. Grundsätzlich setzt sich ein <strong>Computer</strong> bekanntermaßen aus sogenannter <strong>Hardware</strong> zusammen. Beispiele für Hardwarekomponenten eines Computers sind etwa die Festplatte, das Mainboard, der Prozessor, der Arbeitsspeicher, Laufwerke und das Netzteil.</p><p>Damit diese Hardware <strong>miteinander interagiert</strong> und du folglich einen funktionsfähigen Computer vor dir hast, ist allerdings noch ein <strong>Betriebssystem</strong> erforderlich.</p><p>Das Betriebssystem hat somit die Aufgabe, die Hardware deines Computers zu <strong>kontrollieren</strong> und zu <strong>verwalten</strong>.</p><p>Wenn du nun beispielsweise mit der Programmiersprache Python selbst Programme schreibst, möchtest du mit diesen Programmen bewirken, dass der Computer etwas für dich umsetzt.</p><p>Zum Beispiel könntest du den Computer mithilfe von Python dazu anweisen, bestimmte Berechnungen durchzuführen. Damit das gelingt, muss man auf irgendeine Art und Weise <strong>Zugriff auf die Hardware</strong> erlangen.</p><p>Bei höheren Programmiersprachen wie etwa <strong>Python</strong> ist es so, dass man damit nicht direkt auf die Hardware zugreift, sondern stattdessen unter <strong>Zuhilfenahme</strong> des <strong>Betriebssystems</strong> Zugriff darauf erhält.</p><p>Das Betriebssystem stellt damit gewisse <strong>Services</strong> bereit, die wir mithilfe der Programmiersprache <strong>Python</strong> ansprechen können. Anschließend erledigt das Betriebssystem unsere Anweisungen, die wir über Python formuliert haben und greift entsprechend auf die Hardware des Computers zu.</p><p>Es handelt sich dabei also um eine Art <strong>Schichten-Modell</strong>, weshalb ich den Inhalt der folgenden Abbildung übereinandergeschichtet dargestellt habe:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18ec1e03771"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28798" alt="Das Schichtenmodell" data-id="28798" width="742" data-init-width="2056" height="268" data-init-height="744" title="tkinter-1" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/04/tkinter-1.png" data-width="742" data-height="268" style="aspect-ratio: auto 2056 / 744;" data-pagespeed-url-hash="4020700002" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-1.png 2056w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-1-300x109.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-1-1024x371.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-1-768x278.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-1-1536x556.png 1536w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-1-2048x741.png 2048w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Dabei bietet jede Schicht der darüberliegenden Schicht gewisse <strong>Dienste</strong> an.</p><p>Wenn wir jetzt aber grafische Benutzeroberflächen programmieren möchten, dann <strong>reichen die Services des Betriebssystems allein nicht aus</strong>. Python benötigt nämlich weitere Services, die es sich hierfür zunutze machen kann.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6614f195879069" id="t-1689865778143">3. Tcl/Tk</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Einer dieser weiteren Services ist Tcl/Tk. Tcl steht für „Tool command language“ und es handelt sich dabei um eine <strong>Skriptsprache</strong> mit eigenem Interpreter.</p><p>Tk wiederum steht für „<strong>Toolkit</strong>“, welches man für die Erstellung von grafischen Benutzeroberflächen verwendet.</p><p>Tcl/Tk stellt nun also Services zur Verfügung, die ermöglichen, Anwendungen mit grafischen Benutzeroberflächen zu bauen. Es gibt allerdings ein Problem: Tcl/Tk <strong>erlaubt Python nämlich nicht</strong> direkt die eigenen <strong>Services zu nutzen</strong>. Wenn wir also über Python Zugriff auf die Services von Tcl/Tk erhalten möchten, benötigen wir einen weiteren Vermittler dazwischen.</p><p>Dieser Vermittler ist <strong>Tkinter</strong>, das für „Tk Interface“ steht und was letztendlich Hauptthema dieses Crashkurses sein wird.</p></div><div class="thrv_wrapper thrv_text_element" data-tag="h2"><h2 class="" data-css="tve-u-6614f195879069" id="t-1708085968254">4. Welchen Vorteil haben wir durch Tkinter?</h2></div><div class="thrv_wrapper thrv_text_element"><p>Mithilfe von Tkinter können wir die Services von Tcl/Tk nutzen, womit uns ermöglicht wird, ansprechende <strong>GUI-Anwendungen in Python </strong>sowohl für Windows als auch für Mac zu entwickeln.</p><p>Der Vorteil dabei ist, dass wir uns als Python-Entwickler nicht in Tcl/Tk einarbeiten, sondern lediglich verstehen müssen, wie wir mit Tkinter arbeiten können.</p><blockquote class="">Denn Tkinter sorgt dafür, dass alles, was wir als Python-Entwickler zur Entwicklung einer GUI benötigen, als <strong>Objekt</strong> für uns in Python verfügbar ist.</blockquote><p>Was bedeutet das konkret? Wenn wir eine GUI bauen, besteht diese beispielsweise aus einem <strong>Hauptfenster</strong> und dieses wird über die Services von Tcl/Tk erschaffen. Dieses Fenster ist für uns Python-Entwickler dabei nichts anderes als ein Objekt, mit welchem wir in Python innerhalb unseres Codes arbeiten können.</p><p>Jetzt, wo du weißt, was Tkinter ist und wie es konzeptionell einzuordnen ist, müssen wir als Python-Entwickler nur noch dafür sorgen, dass wir unseren Code so aufsetzen, dass wir Tkinter verwenden können.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6614f195879162" id="t-1708699560435" style="">5. Voraussetzungen für die Nutzung</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Grundsätzlich müssen wir hierfür lediglich <strong>Python</strong> und eine geeignete <strong>Entwicklungsumgebung</strong> installieren. Im ersten Teil unseres allgemeinen Python-Crashkurses haben wir diese Installation ausführlich erklärt. Dieses <a href="https://www.youtube.com/watch?v=oxXAb8IikHM&amp;ab_channel=ProgrammierenStarten" target="_blank" class="" style="outline: currentcolor;">Video</a> sowie den zugehörigen <a href="https://programmieren-starten.de/blog/python-lernen/" target="_blank" class="" style="outline: none;">Blogartikel</a>, in welchem dir die Installation Schritt für Schritt anhand von Bildern gezeigt wird, kannst du dir gerne (nochmals) ansehen.</p><p>Im weiteren Verlauf des Kurses gehen wir davon aus, dass du Python korrekt installiert und ein normales Projekt in PyCharm angelegt hast. Das wird dir, wie bereits erwähnt, im Video sowie im Blogbeitrag im Detail erklärt.</p><p>Um nun mithilfe von <strong>Tkinter</strong> grafische Benutzeroberflächen bauen zu können, müssen wir dieses lediglich in unserem Projekt <strong>importieren</strong>. Das gestaltet sich denkbar einfach, da Tkinter ein sogenanntes <em><strong>built-in-module</strong></em> ist. Es wird also bereits mit deiner installierten Python-Version ausgeliefert, sodass du dieses Modul nicht mehr extra nachinstallieren musst.</p></div><div class="thrv_wrapper thrv_text_element"><h2 class="" data-css="tve-u-6614f195879162" style="" id="t-1712218766359">6. Tkinter importieren und testen</h2></div><div class="thrv_wrapper thrv_text_element">	<p>Wir schreiben also lediglich oben in unserem Python File den folgenden Importbefehl:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6614f195879034" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6614f195879055">	<p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong><span style="--tcb-applied-color: rgb(255, 113, 44) !important; color: rgb(255, 113, 44) !important;">import</span> tkinter</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Das war es auch schon! Damit haben wir nun die Möglichkeit, innerhalb dieses Files mit Tkinter zu arbeiten. An dieser Stelle ergänzen wir testweise noch die folgende Anweisung im Code:</p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" style="">
	<div class="tve-content-box-background" data-css="tve-u-6614f195879034" style=""></div>
	<div class="tve-cb"><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-6614f195879055">	<p style="" data-css="tve-u-18ec1e293ef"><span style="" data-css="tve-u-18ec1e293f1">import</span> tkinter</p><p style="color: var(--tcb-color-1) !important; --tcb-applied-color: var$(--tcb-color-1) !important;"><strong>tkinter._test()</strong></p></div></div>
</div><div class="thrv_wrapper thrv_text_element">	<p>Wir rufen damit im Namensraum von Tkinter die _test-Methode auf, die uns ermöglicht zu <strong>prüfen</strong>, ob alles korrekt <strong>funktioniert</strong>.</p><p>Denn wenn wir das Programm an dieser Stelle einmal ausführen, sollte das folgende Fenster erscheinen:</p></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18ec1e3ebe4"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28802" alt="Im Namensraum von Tkinter rufen wir die test-Methode auf" data-id="28802" width="742" data-init-width="1576" height="122" data-init-height="260" title="tkinter-2" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/04/tkinter-2.png" data-width="742" data-height="122" style="aspect-ratio: auto 1576 / 260;" data-pagespeed-url-hash="20232627" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-2.png 1576w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-2-300x49.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-2-1024x169.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-2-768x127.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-2-1536x253.png 1536w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper tve_image_caption" data-css="tve-u-18ec1e4e4c7"><span class="tve_image_frame"><img decoding="async" class="tve_image wp-image-28804" alt="Wenn dieses Fenster erscheint, können wir mit Tkinter arbeiten" data-id="28804" width="742" data-init-width="2124" height="251" data-init-height="720" title="tkinter-3" loading="lazy" src="https://programmieren-starten.de/wp-content/uploads/2024/04/tkinter-3.png" data-width="742" data-height="251" style="aspect-ratio: auto 2124 / 720;" data-pagespeed-url-hash="314732548" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" srcset="https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-3.png 2124w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-3-300x102.png 300w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-3-1024x347.png 1024w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-3-768x260.png 768w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-3-1536x521.png 1536w, https://www.programmieren-starten.de/wp-content/uploads/2024/04/tkinter-3-2048x694.png 2048w" sizes="auto, (max-width: 742px) 100vw, 742px" /></span></div><div class="thrv_wrapper thrv_text_element">	<p>Wenn dieses Fenster auftaucht, bist du auch schon bereit für den kompletten Crashkurs.</p><p>Falls das Fenster hingegen nicht erscheinen sollte, hast du Python entweder nicht installiert oder du nutzt möglicherweise eine sehr <strong>alte Version </strong>von Python. In diesem Fall empfehle ich dir, die aktuellste Python-Version noch mal komplett neu zu installieren.</p><p>Wie das funktioniert, ist in diesem <a href="https://www.youtube.com/watch?v=oxXAb8IikHM&amp;ab_channel=ProgrammierenStarten" target="_blank" class="" style="outline: none;">YouTube-Video</a> bzw. <a href="https://programmieren-starten.de/blog/python-lernen/" target="_blank" class="" style="outline: none;">Blogartikel</a> detailliert beschrieben.</p><p>Jetzt, da wir alle Vorbereitungen getroffen haben, können wir im nächsten Beitrag direkt loslegen.</p></div><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_19257" data-shortcode="thrive_symbol" data-id="19257" data-selector=".thrv_symbol_19257"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="19257"><style type="text/css" id="tcb-style-base-tcb_symbol-19257"  onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">body:not(.tve_editor_page) .thrv_social_follow .tve_s_item a[href=""],body:not(.tve_editor_page) .thrive_author_links .tve_s_item a[href=""]{display:none;}.thrv_wrapper .tve-content-box-background{position:absolute;width:100%;left:0px;top:0px;overflow:hidden;background-clip:padding-box;height:100% !important;}.thrv_wrapper.thrv-content-box{box-sizing:border-box;position:relative;min-height:10px;}.thrv_wrapper.thrv-content-box div:not(.thrv_icon):not(.ui-resizable-handle):not(.tve-auxiliary-icon-element){box-sizing:border-box;}.tve-cb{display:inline-block;vertical-align:middle;clear:both;overflow:visible;width:100%;z-index:1;position:relative;min-height:10px;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.tcb-style-wrap strong{font-weight:var(--g-bold-weight,bold);}.tcb-plain-text{cursor:text;}a .tcb-plain-text{cursor:inherit;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}body:not(.tve_editor_page) .thrv_wrapper.thrv_footer,body:not(.tve_editor_page) .thrv_wrapper.thrv_header{padding:0px;}.tcb-post-content.thrv_wrapper{margin-top:15px;margin-bottom:15px;padding:0px;}#tve_editor .tcb-post-content p{font-size:16px;line-height:1.6em;}body:not(.tve_editor_page) .tcb-post-list[data-disabled-links="1"] article{position:relative;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tve_ea_thrive_animation{opacity:0;}.tve_ea_thrive_animation.tve_anim_start{opacity:1;transition:all 0.5s ease-out 0s;}.tve_ea_thrive_animation.tve_anim_slide_left{transform:translateX(-200px);}.tve_ea_thrive_animation.tve_anim_slide_left.tve_anim_start{transform:translateX(0px);}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.tve-elem-default-pad{padding:20px;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol,.thrv_wrapper.thrv-plain-text{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}.thrv_wrapper.thrv_contentbox_shortcode{position:relative;}body:not(.ttb-editor-page) .tcb-post-content::before,body:not(.ttb-editor-page) .tcb-post-content::after{display:none;}.thrv_wrapper.thrv_text_element{padding:1px;}body.single:not(.tve_editor_page) .thrv_contents_table:not(.tve-rendered){display:none;}body.single:not(.tve_editor_page) #tve_editor .thrv_contents_table{display:block;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.tcb-flex-row{flex-direction:column;}.thrv_wrapper > .tcb-flex-row:not(.v-2) > .tcb-flex-col{width:100%;max-width:100% !important;flex:0 0 auto !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style class='tve-symbol-custom-style'>@media (min-width: 300px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-left: 0px !important;margin-top: 0px !important;padding-top: 0px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe98"]{box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 0px;--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;border: 2px solid rgb(255,255,255) !important;background-image: linear-gradient(rgba(255,255,255,0.8),rgba(255,255,255,0.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,0.7),rgba(148,163,176,0.7) 1px,transparent 1px,transparent 100%) !important;background-size: auto,3px 3px !important;background-position: 50% 50%,50% 50% !important;background-attachment: scroll,scroll !important;background-repeat: no-repeat,repeat !important;--background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;--background-size: auto auto,3px 3px !important;--background-position: 50% 50%,50% 50% !important;--background-attachment: scroll,scroll !important;--background-repeat: no-repeat,repeat !important;--tve-applied-background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),repeating-radial-gradient(circle at center center,rgba(148,163,176,.7),rgba(148,163,176,.7) 1px,transparent 1px,transparent 100%) !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9e"]{margin-top: 0px;margin-left: 0px;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea5"]{border-radius: 8px;overflow: hidden;background-color: rgb(244,78,3) !important;--background-color: #f44e03 !important;--tve-applied-background-color: #f44e03 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea6"]{--tve-alignment: center;float: none;background-color: rgb(0,8,255) !important;margin-left: auto !important;margin-right: auto !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] p,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] li,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] blockquote,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] address,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] .tcb-plain-text,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] label,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h1,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h2,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h3,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h4,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h5,:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea0"] h6{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 24px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 387px;padding-left: 0px !important;padding-right: 0px !important;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{max-width: 900px;float: none;width: 100%;margin-left: 50px !important;margin-right: auto !important;padding: 0px !important;margin-bottom: 50px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]:hover [data-css="tve-u-180b32fbe98"]{background-image: none !important;box-shadow: rgba(0,0,0,0.4) 0px 0px 12px 8px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 25px !important;margin-left: 10px !important;margin-right: 10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 17px !important;color: rgb(0,0,0) !important;--tcb-applied-color: #000 !important;--tve-applied-color: #000 !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 388px;padding-top: 10px !important;padding-bottom: 10px !important;margin: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe99"]{--tve-border-radius: 20px;border-radius: 20px;overflow: hidden;margin-top: 0px !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 39.9998%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9982%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9c"]{justify-content: center !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9a"]{padding-top: 0px !important;padding-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{justify-content: center !important;padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{margin-top: 0px !important;margin-bottom: 0px !important;padding: 0px 10px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"] > .tve-cb{justify-content: center;display: flex;flex-direction: column;}}@media (max-width: 1023px){.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 0px !important;margin-bottom: -10px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{margin-top: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea0"]{padding-top: 5px !important;padding-bottom: 5px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9b"]{max-width: 40%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 59.9996%;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 20px !important;}}@media (max-width: 767px){.thrv_symbol_19257 [data-css="tve-u-180b32fbe9d"]{width: 420px;float: none;margin-left: auto !important;margin-right: auto !important;margin-bottom: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe97"]{margin-left: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea2"]{margin-top: 12px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea3"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea4"]{max-width: 500px;margin: 0px 10px 15px !important;}:not(#tve) .thrv_symbol_19257 [data-css="tve-u-180b32fbea7"]{font-size: 18px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe9f"]{max-width: 100%;}.thrv_symbol_19257 [data-css="tve-u-180b32fbea1"]{padding-left: 0px !important;padding-right: 0px !important;}.thrv_symbol_19257 [data-css="tve-u-180b32fbe96"]{padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbe96" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/pev-lp1/" target="_blank" rel=" nofollow" class=""></a><a href="https://programmieren-starten.de/premium-mitgliedschaft-lp1/" target="_blank" rel="nofollow"><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve_evt_manager_listen tve_et_tve-viewport tve_ea_thrive_animation tve_anim_slide_left tve-viewport-triggered" data-css="tve-u-180b32fbe97" data-link-wrap="1" data-tcb-events="__TCB_EVENT_[{&quot;t&quot;:&quot;tve-viewport&quot;,&quot;config&quot;:{&quot;anim&quot;:&quot;slide_left&quot;,&quot;loop&quot;:0},&quot;a&quot;:&quot;thrive_animation&quot;}]_TNEVE_BCT__" style="" id="banner-lm1"> <div class="tve-content-box-background" data-css="tve-u-180b32fbe98" data-tcb_hover_state_parent="1" style="--tve-border-radius:20px; border-radius: 20px; overflow: hidden;"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 719.859;" data-css="tve-u-180b32fbe99"><div class="tcb-flex-row tcb-resized tcb--cols--2" data-css="tve-u-180b32fbe9a" style=""><div class="tcb-flex-col c-33" data-css="tve-u-180b32fbe9b" style=""><div class="tcb-col" data-css="tve-u-180b32fbe9c" style=""><div class="thrv_wrapper tve_image_caption" data-css="tve-u-180b32fbe9d" style=""><span class="tve_image_frame" style="width: 100%;"><img decoding="async" loading="lazy" class="tve_image wp-image-18887" alt="premium mitgliedschaft visualisierung" width="280" height="280" title="premium-mitgliedschaft-visualisierung" data-id="18887" src="https://programmieren-starten.de/wp-content/uploads/2022/05/premium-mitgliedschaft-visualisierung.svg" style="" data-css="tve-u-180b32fbe9e" data-pagespeed-url-hash="3050102232" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" data-width="280" data-height="280" data-init-width="810" data-init-height="809.999993"></span></div></div></div><div class="tcb-flex-col c-66" data-css="tve-u-180b32fbe9f" style=""><div class="tcb-col" data-css="tve-u-180b32fbea0" style=""><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea1" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb" style=""><div class="thrv_wrapper thrv_text_element" style="" data-css="tve-u-180b32fbea2"><p data-css="tve-u-180b32fbea3" style="text-align: center;"><strong>Lerne ohne Vorkenntnisse leichtverständlich und Schritt für Schritt das Programmieren, sodass du deine eigenen Projekte umsetzen kannst.</strong></p></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-180b32fbea4" style=""> <div class="tve-content-box-background" data-css="tve-u-180b32fbea5" style=""></div> <div class="tve-cb"><div class="thrv_wrapper thrv_text_element thrv-plain-text" data-css="tve-u-180b32fbea6" style="background-color: rgb(244, 78, 3) !important; --background-color:rgb(244, 78, 3) !important;"><div class="tcb-plain-text" data-css="tve-u-180b32fbea7" style="text-align: center;">Jetzt Account aktivieren</div></div></div> </div></div> </div></div></div></div></div></div> </div></a></div> </div></div></div><div class="thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad" data-css="tve-u-6614f195879200" style=""> <div class="tve-content-box-background"></div> <div class="tve-cb"><div class="thrv_wrapper thrv-columns" style="--tcb-col-el-width: 739.65625;" data-css="tve-u-6614f195879214"><div class="tcb-flex-row v-2 m-edit tcb-mobile-wrap tcb--cols--2" data-css="tve-u-6614f195879231" style=""><div class="tcb-flex-col" data-css="tve-u-6614f195879241" style=""><div class="tcb-col"></div></div><div class="tcb-flex-col" data-css="tve-u-6614f195879276" style=""><div class="tcb-col"><div class="thrv_wrapper thrv-button thrv-button-v2 tcb-local-vars-root" data-css="tve-u-6614f195879254" style=""> <div class="thrive-colors-palette-config" style="display: none !important"></div> <a href="https://programmieren-starten.de/blog/python-tkinter/" class="tcb-button-link tcb-plain-text"> <span class="tcb-button-texts"><span class="tcb-button-text thrv-inline-text">Nächster Artikel</span></span> </a> </div></div></div></div></div></div> </div><div class="tcb_flag" style="display: none"></div>
<p>Der Beitrag <a href="https://www.programmieren-starten.de/blog/tkinter/">Python Tkinter Tutorial #1 &#8211; Was ist Tkinter?</a> erschien zuerst auf <a href="https://www.programmieren-starten.de">programmieren-starten.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
