<?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>Entwickungsumgebungen &#8211; ChatGPT, KI und Software auf dem Raspberry Pi</title>
	<atom:link href="https://progpi.de/category/entwickungsumgebungen/feed/" rel="self" type="application/rss+xml" />
	<link>https://progpi.de</link>
	<description>ChatGPT, KI und die Zukunft</description>
	<lastBuildDate>Sat, 01 Feb 2025 12:04:58 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://progpi.de/wp-content/uploads/2019/01/cropped-ProgPi_512-32x32.png</url>
	<title>Entwickungsumgebungen &#8211; ChatGPT, KI und Software auf dem Raspberry Pi</title>
	<link>https://progpi.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Mit ChatGPT Python Oberflächen zaubern</title>
		<link>https://progpi.de/chatgpt-python-gui/</link>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 18:16:56 +0000</pubDate>
				<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Entwickungsumgebungen]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=7803</guid>

					<description><![CDATA[<p>Wie man mit ChatGPT Oberflächen für PyQt5-Programme baut&#160;&#160; Nein, ChatGPT macht nicht alles vollautomatisch. Aber im Buch ChatGPT, OpenAI und der blaue Planet lernen Sie kennen, was schon alles &#8222;halbautomatisch&#8220; geht. Dort wird im Kapitel 7 gezeigt, wie man Webseiten abtastet, und so Informationen extrahiert. Solch ein Web-Crawler erzeugt dann per Python-Script eine CSV-Datei mit [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/chatgpt-python-gui/">Mit ChatGPT Python Oberflächen zaubern</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7803" class="elementor elementor-7803">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-7dba4b4 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7dba4b4" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e327c23" data-id="e327c23" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8a9db58 elementor-widget elementor-widget-text-editor" data-id="8a9db58" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Wie man mit ChatGPT Oberflächen für PyQt5-Programme baut&nbsp;&nbsp;</h2>
<p>Nein, ChatGPT macht nicht alles vollautomatisch. Aber im Buch <u><a href="https://progpi.de/chatgpt-planet/">ChatGPT, OpenAI und der blaue Planet</a></u> lernen Sie kennen, was schon alles &#8222;halbautomatisch&#8220; geht. Dort wird im Kapitel 7 gezeigt, wie man Webseiten abtastet, und so Informationen extrahiert. Solch ein <u><a href="https://progpi.de/wp-content/uploads/2025/01/Was-ist-ein-Web-Scraper.pdf">Web-Crawler</a></u> erzeugt dann per Python-Script eine CSV-Datei mit über 8400 Datensätzen. Wahlweise auch mit weiteren Feldern und als XLS-Datei. Natürlich können Sie ChatGPT-4o auch lediglich mit einigen Worten beschreiben, wie Sie sich die Bedienoberfläche zur CSV-Datei vorstellen.&nbsp;<span style="font-size: 16px; color: var( --e-global-color-text );">Aber es geht noch einfacher:&nbsp;</span></p>
<p>Auf&nbsp;&nbsp;<a style="font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; background-color: #feffef;" href="https://progpi.de/gpt-4o-klug-und-schnell/#Bildanalyse"><u style="font-size: 16px;">https://progpi.de/gpt-4o-klug-und-schnell/#Bildanalyse</u></a><span style="font-size: 16px; color: var( --e-global-color-text );">&nbsp;haben Sie vielleicht schon die verblüffenden Fähigkeiten von ChatGPT-4o kennengelernt, Bilder inhaltlich zu analysieren.&nbsp;</span></p>
<h2><span style="font-size: 16px; color: #008000;">Von der Skizze zu Programm</span></h2>
<p><span style="font-size: 16px; color: var( --e-global-color-text );">Mit einer groben handgezeichneten Skizze der geplanten Bedienoberfläche und ein paar guten Prompts, die sich auf Felder in der Skizze beziehen, kommen Sie erstaunlich weit. Hier nochmals die Skizze:</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-047c903 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="047c903" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6bd34ae" data-id="6bd34ae" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-25dde19 elementor-widget__width-initial elementor-widget elementor-widget-image" data-id="25dde19" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="640" height="523" src="https://progpi.de/wp-content/uploads/2025/01/GUI-Design-Navigator.jpg" class="attachment-medium_large size-medium_large wp-image-7819" alt="Von der Handschrift Skizze zum Python-Code" srcset="https://progpi.de/wp-content/uploads/2025/01/GUI-Design-Navigator.jpg 640w, https://progpi.de/wp-content/uploads/2025/01/GUI-Design-Navigator-300x245.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-48d98ed elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="48d98ed" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-053b558" data-id="053b558" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-df4bb14 elementor-widget elementor-widget-text-editor" data-id="df4bb14" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; color: var( --e-global-color-text );">Über den Büroklammer-Button wird d</span>ie grobe Layout-Skizze dem Prompt als Datei hinzugefügt.&nbsp;</p>
<h2 style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-style: normal;"><span style="font-size: 16px; color: #008000;">Die Daten zur Skizze</span></h2>
<p>Aber bevor Sie loslegen können, brauchen Sie natürlich noch Daten. Entweder holen Sie sich eine passende CSV-Datei aus dem <a href="https://progpi.de/download/chatgpt-planet"><u>Downloadbereich zum ChatGPT-Buch</u></a> , oder Sie starten mit einem eigenen kleinen und kompakten Datensatz wie diesem:</p>
<p><span style="color: #800000;">Name;Geburtsdatum;Todesdatum;Beschreibung</span><br><span style="color: #800000;">Abbe, Ernst;23. Januar 1840;14. Januar 1905;deutscher Physiker, Unternehmer</span><br><span style="color: #800000;">Antonius der Große;ca 251;ca. 356;christlicher Mönch, Asket und Einsiedler</span><br><span style="color: #800000;">Arnim, Bettina von;4. April 1785;20. Januar 1859;deutsche Schriftstellerin</span><br><span style="color: #800000;">Bach, Johann Sebastian;21. März 1685 (JK);28. Juli 1750;deutscher Komponist</span><br><span style="color: #800000;">Balzac, Honoré de;20. Mai 1799;18. August 1850;französischer Schriftsteller</span><br><span style="color: #800000;">Copernicus, Nicolaus;19. Februar 1473;24. Mai 1543;Domherr, Astronom</span><br><span style="color: #800000;">Darwin, Charles;12. Februar 1809;19. April 1882;britischer Naturforscher</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-bd0a062 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="bd0a062" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f30b9a3" data-id="f30b9a3" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-59955f4 elementor-widget elementor-widget-text-editor" data-id="59955f4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Die (handgezeichnete) Skizze der geplanten Bedienoberfläche und die vorhandenen Daten müssen allerdings zueinander passen. Als ersten Schritt bekommt ChatGPT-4o die Skizze über das Büroklammer-Icon und zusätzlich folgenden Prompt:</p><p><span style="color: #0000ff;">Mach mir Python Code für eine Qt-GUI nach dem Foto</span><br /><span style="color: #0000ff;">Die CSV-Datensätze haben folgendes Format:</span><br /><span style="color: #0000ff;">Name;Geburtsdatum;Todesdatum;Beschreibung</span><br /><span style="color: #0000ff;">Abbe, Ernst;23. Januar 1840;14. Januar 1905;deutscher Physiker, Unternehmer</span><br /><span style="color: #0000ff;">Antonius der Große;ca 251;ca. 356;christlicher Mönch, Asket und Einsiedler</span><br /><span style="color: #0000ff;">Die csv-Datei soll als Parameter angegeben werden. Suchresultate nach Enter im Volltextfeld</span><br /><span style="color: #0000ff;">anzeigen. Dort z.B. Physiker, Chemiker, Politiker als ODER Suche interpretieren und im Trefferfeld</span><br /><span style="color: #0000ff;">dann z.B. 1/34 statt der Gesamtmenge der Treffer anzeigen.</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7ec4c25 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7ec4c25" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c47c28c" data-id="c47c28c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8e0d288 elementor-widget elementor-widget-text-editor" data-id="8e0d288" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-style: normal;"><span style="font-size: 16px; color: #008000;">Entwicklungszyklen mit ChatGPT-4o für die Oberfläche des Programms</span></h2><p>Nachfolgend können Sie erleben, wie sich die Python-Oberfläche mit jedem weiteren Prompt verbessert. Der gesamte Chatverlauf ist als autorenQtGUI.pdf im Download für Kapitel7  enthalten. Hier soll der Fokus eher auf den Screenshots der Oberfläche liegen, was zum ersten Entwurf von ChatGPT führt:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-47427a3 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="47427a3" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-735b982" data-id="735b982" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d3a9c91 elementor-widget elementor-widget-text-editor" data-id="d3a9c91" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><i>Hier ist ein Beispiel für einen Python-Code, der eine Qt-basierte GUI mit PyQt5 erstellt, die den <span style="font-size: 16px; color: var( --e-global-color-text );">Anforderungen auf dem Bild entspricht. Die Anwendung kann eine CSV-Datei laden und eine </span><span style="font-size: 16px; color: var( --e-global-color-text );">Volltextsuche durchführen, bei der Suchbegriffe als &#8222;ODER&#8220; interpretiert werden.  [test01.py]</span></i></p><p style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;"><i>Features</i></p><ol style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;"><li style="font-size: 16px;"><i>CSV Laden: Die Daten aus der CSV-Datei werden geladen und in der GUI angezeigt.</i></li><li style="font-size: 16px;"><i>Volltextsuche: Die Suche durchsucht die Beschreibung mit einer &#8222;ODER&#8220;-Logik basierend auf den eingegebenen Keywords.</i></li><li style="font-size: 16px;"><i>Navigation: Mit den Tasten &lt;&lt; und &gt;&gt; kann zwischen den Treffern navigiert werden.</i></li><li style="font-size: 16px;"><i>Trefferanzahl: Die aktuelle Trefferanzahl wird in der Form 1/34 angezeigt.</i></li></ol><p style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;"><i>Benötigte Python-Bibliotheken</i></p><p style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;"><i>• PyQt5 (pip install pyqt5)</i></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-dd419b9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="dd419b9" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cebc6ac" data-id="cebc6ac" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-6e38425 elementor-widget elementor-widget-image" data-id="6e38425" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="407" height="265" src="https://progpi.de/wp-content/uploads/2025/01/test01-e1735835366878.png" class="attachment-medium_large size-medium_large wp-image-7869" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test01-e1735835366878.png 407w, https://progpi.de/wp-content/uploads/2025/01/test01-e1735835366878-300x195.png 300w" sizes="(max-width: 407px) 100vw, 407px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-52aff85 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="52aff85" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e004644" data-id="e004644" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-2532dec elementor-widget elementor-widget-text-editor" data-id="2532dec" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Ein Button zum Laden der CSV-Datei war nicht in der Skizze und noch hat ChatGPT-4o nicht ganz verstanden, was zu tun ist. Folglich folgender Prompt:</p><p><span style="color: #0000ff;">Die *.csv-Datei soll beim Start als Parameter angegeben werden. Kein Button zum Laden. <span style="font-size: 16px;">Labelfelder für Geburtstag und Todestag getrennt. Alle Labelfelder mit passenden CSV-Daten </span><span style="font-size: 16px;">füllen. Nur die grünen Felder der Skizze sind Eingabefelder.</span></span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-76f55ba elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="76f55ba" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4fba0e3" data-id="4fba0e3" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-34d0309 elementor-widget elementor-widget-text-editor" data-id="34d0309" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><i>Hier ist eine angepasste Version des Codes, bei dem die CSV-Datei als Startparameter übergeben&nbsp;<span style="font-size: 16px; color: var( --e-global-color-text );">wird und keine Schaltfläche zum Laden der Datei benötigt wird. Die Geburtstags- und&nbsp;</span><span style="font-size: 16px; color: var( --e-global-color-text );">Todestagsfelder sind getrennte Labels, und nur die grünen Felder auf der Skizze (das Volltextfeld)&nbsp;</span><span style="font-size: 16px; color: var( --e-global-color-text );">sind als Eingabefelder definiert. [test02.py]</span></i></p>
<p><i>Anpassungen im Code<br>1. CSV als Parameter:<br>• Die CSV-Datei wird beim Start des Programms über die Kommandozeilenargumente angegeben.<br>• Beispiel: python navigator.py daten.csv<br>2. Trennung der Felder:<br>• Geburtstags- und Todestagsinformationen werden in separaten QLabel-Feldern angezeigt.<br>3. Eingabefelder:<br>• Nur das Suchfeld (search_input) ist bearbeitbar. Alle anderen Felder (QLabel) sind rein für die Anzeige der CSV-Daten.<br>4. Initiale Ansicht:<br>• Beim Start wird die gesamte CSV-Liste ohne Filter angezeigt.</i></p>
<p><i>Aufrufbeispiel&#8230;&#8230;&#8230;</i></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-f2e3f6c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="f2e3f6c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5d57d53" data-id="5d57d53" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-6b95d3d elementor-widget elementor-widget-image" data-id="6b95d3d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="948" height="258" src="https://progpi.de/wp-content/uploads/2025/01/test02-e1735835391814.png" class="attachment-large size-large wp-image-7870" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test02-e1735835391814.png 948w, https://progpi.de/wp-content/uploads/2025/01/test02-e1735835391814-300x82.png 300w, https://progpi.de/wp-content/uploads/2025/01/test02-e1735835391814-768x209.png 768w" sizes="(max-width: 948px) 100vw, 948px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-d9fe503 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d9fe503" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fbf8a8f" data-id="fbf8a8f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9094d49 elementor-widget elementor-widget-text-editor" data-id="9094d49" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Nun hat ChatGPT-4o den Python Code (auf Basis von PyQt5.QtWidgets) so geschrieben, daß erstmals die als Parameter angegebene Datei gelesen und die Anzahl der Datensätze durchklickbar angezeigt wird. Auch die Suche im Feld &#8222;Beschreibung&#8220; funktioniert. Allerdings ist das Layout immer noch linksbündig und es fehlen auch Buttons. Folglich folgender Prompt:</p><p><span style="color: #0000ff;">Halte dich beim Layout an die Skizze und setze alle Buttons um. Symmetrische zentrierte <span style="font-size: 16px;">Darstellung ohne überflüssige Beschriftungen</span></span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-639cb77 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="639cb77" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6d755eb" data-id="6d755eb" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d2f17b7 elementor-widget elementor-widget-text-editor" data-id="d2f17b7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><i>Hier ist der angepasste Python-Code, der das Layout exakt gemäß der Skizze umsetzt. Die <span style="font-size: 16px; color: var( --e-global-color-text );">Darstellung ist zentriert, symmetrisch und ohne überflüssige Beschriftungen. Alle Buttons sind </span><span style="font-size: 16px; color: var( --e-global-color-text );">entsprechend der Skizze umgesetzt. [test03.py]</span></i></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2856245 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2856245" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bce0880" data-id="bce0880" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8f1dfdf elementor-widget elementor-widget-image" data-id="8f1dfdf" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="768" height="200" src="https://progpi.de/wp-content/uploads/2025/01/test03-e1735835418351-768x200.png" class="attachment-medium_large size-medium_large wp-image-7871" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test03-e1735835418351-768x200.png 768w, https://progpi.de/wp-content/uploads/2025/01/test03-e1735835418351-300x78.png 300w, https://progpi.de/wp-content/uploads/2025/01/test03-e1735835418351.png 888w" sizes="(max-width: 768px) 100vw, 768px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-4e3e73a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4e3e73a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-91dcf58" data-id="91dcf58" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-80d2640 elementor-widget elementor-widget-text-editor" data-id="80d2640" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Die Buttons &lt;&lt; und &gt;&gt; sind jetzt zwar vorhanden, bewirken aber ein Sprung zum allerersten bzw allerletzten Datensatz. Das soll besser werden:</p>
<p><span style="color: #0000ff;">Die Buttons &lt;&lt; und &gt;&gt; sollen einen Sprung um 1/10 der Treffermenge durchführen. Den&nbsp;<span style="font-size: 16px;">Sprungwert auf einen durch 5 teilbaren Wert runden</span></span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7045cfb elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7045cfb" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-774ebd2" data-id="774ebd2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-36ede75 elementor-widget elementor-widget-text-editor" data-id="36ede75" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><i><span style="font-family: Roboto, sans-serif; font-size: 16px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Hier ist der aktualisierte Code, der die Buttons &lt;&lt; und &gt;&gt; so modifiziert, dass sie einen Sprung um </span><span style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400; color: var( --e-global-color-text );">1/10 der Trefferanzahl machen. Der Sprungwert wird dabei auf einen durch 5 teilbaren Wert </span><span style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400; color: var( --e-global-color-text );">gerundet. [test04.py]</span></i></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7d0db54 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7d0db54" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0586569" data-id="0586569" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-186a01b elementor-widget elementor-widget-image" data-id="186a01b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="468" height="229" src="https://progpi.de/wp-content/uploads/2025/01/test04-e1735835444424.png" class="attachment-medium_large size-medium_large wp-image-7872" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test04-e1735835444424.png 468w, https://progpi.de/wp-content/uploads/2025/01/test04-e1735835444424-300x147.png 300w" sizes="(max-width: 468px) 100vw, 468px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-475806e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="475806e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6b0b843" data-id="6b0b843" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9b899e9 elementor-widget elementor-widget-text-editor" data-id="9b899e9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Die Buttons sind jetzt voll funktionsfähig und ein 10% Sprung vorwärts hat zum Datensatz 846 geführt. Auch die Oder-Suche und das Durchklicken der Treffermenge scheint zu funktionieren:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-8d093aa elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8d093aa" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bdb8bf8" data-id="bdb8bf8" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-fe0d841 elementor-widget elementor-widget-image" data-id="fe0d841" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" src="https://progpi.de/wp-content/uploads/2025/01/test04-physiker.png" title="" alt="" loading="lazy" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-fd62f4a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fd62f4a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-81b7705" data-id="81b7705" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-a8655f3 elementor-widget elementor-widget-text-editor" data-id="a8655f3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-style: normal;"><span style="font-size: 16px; color: #008000;">Welche CSV-Daten werden durchsucht? </span></h2><p>In der (etwas verfrühten) Annahme, daß die Suche schon perfekt funktioniert, sollen neue Funktionen hinzukommen:</p><p><span style="color: #0000ff;">Setze unter das Eingabefeld nebeneinander drei Radiobuttons:</span></p><p style="padding-left: 40px;"><span style="color: #0000ff;">Suchmodus: o Namen o Beschreibung o Volltext </span></p><p><span style="color: #0000ff;">und schalte den Suchmodus entsprechend um</span></p><div> </div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e7a27b6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e7a27b6" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a2f1c2a" data-id="a2f1c2a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f40c3f8 elementor-widget elementor-widget-image" data-id="f40c3f8" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="553" height="263" src="https://progpi.de/wp-content/uploads/2025/01/test05.png" class="attachment-large size-large wp-image-7874" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test05.png 553w, https://progpi.de/wp-content/uploads/2025/01/test05-300x143.png 300w" sizes="(max-width: 553px) 100vw, 553px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c70a485 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c70a485" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-75b0fbd" data-id="75b0fbd" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-145fade elementor-widget elementor-widget-text-editor" data-id="145fade" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #000000;">Bei &#8222;Volltext&#8220; muß nun stets die Summe der Datensätze aus &#8222;Namen&#8220; und &#8222;Beschreibung&#8220; herauskommen. Dabei ist die Suche auch auf Teilstrings sensitiv. So finden Sie (im großen Datensatz mit 8428 Treffern) bei Eingabe von &#8222;öst&#8220; im Feld &#8222;Namen&#8220; nur wenige Namen wie z.B. &#8222;Köster&#8220; während &#8222;Beschreibung&#8220; über 600 österreichische Treffer liefert.</span></p><p><span style="color: #000000;">Da Sie die Weiterentwicklung des Programmcodes durch ChatGPT an allen test*.py Dateien gerne selbst nachvollziehen können, seinen hier mehrere Prompts zusammengefasst:</span></p><p><span style="color: #0000ff;">Setze in der Captionleiste hinter &#8222;Navigator&#8220; den CSV-Dateinamen und dahinter die <span style="font-size: 16px;">Datensatzanzahl</span></span></p><p><span style="color: #0000ff;">Mach rechts neben die Radiobuttons einen Button &#8222;Wikipedia&#8220; der bei Betätigung nach dem Namen </span><span style="color: #0000ff; font-size: 16px;">der angezeigten Person sucht.</span></p><p><span style="color: #0000ff;">Das geht so nicht. Starte Chromium, und darin Wikipedia mit der Person</span></p><p><span style="color: #0000ff;">Für Wikipedia alle Vornamen nach vorn ziehen und das Komma weglassen</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-8f039ef elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8f039ef" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b8ec66d" data-id="b8ec66d" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-fbc68ca elementor-widget elementor-widget-image" data-id="fbc68ca" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="751" height="283" src="https://progpi.de/wp-content/uploads/2025/01/test09-rudolf-d.png" class="attachment-large size-large wp-image-7875" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test09-rudolf-d.png 751w, https://progpi.de/wp-content/uploads/2025/01/test09-rudolf-d-300x113.png 300w" sizes="(max-width: 751px) 100vw, 751px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ba5fe09 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ba5fe09" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f66fe8a" data-id="f66fe8a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5a510dc elementor-widget elementor-widget-text-editor" data-id="5a510dc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-style: normal;"><span style="font-size: 16px; color: #008000;">Ein Link zu Wikipedia</span></h2><p>Nach ein paar Änderungen durch ChatGPT funktioniert auch die Wikipedia Suche, und es kann z.B. Rudolf Diesel gefunden und angezeigt werden. </p><p>Es soll auch die Möglichkeit bestehen, einen Datensatz per absoluter Nummer anzusteuern. Dafür war in der Skizze ein bisher nicht umgesetztes, kleines und mittiges Feld vorgesehen. Aber eleganter ist vielleicht folgende Lösung:</p><p><span style="color: #0000ff;">Wenn im grünen Eingabefeld #222 angegeben wird, soll direkt zu diesem absoluten Datensatz <span style="font-size: 16px;">gesprungen werden und danach das Eingabefeld leer sein</span></span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2a49393 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2a49393" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4c10a5b" data-id="4c10a5b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9189c92 elementor-widget elementor-widget-image" data-id="9189c92" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="528" height="267" src="https://progpi.de/wp-content/uploads/2025/01/test10.png" class="attachment-medium_large size-medium_large wp-image-7880" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test10.png 528w, https://progpi.de/wp-content/uploads/2025/01/test10-300x152.png 300w" sizes="(max-width: 528px) 100vw, 528px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-fc07a1c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fc07a1c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-930a435" data-id="930a435" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-b96f8c5 elementor-widget elementor-widget-text-editor" data-id="b96f8c5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">ChatGPT-4o setzt diese Vorgabe perfekt um, und eleganterweise kommt auch noch ein dezenter Hinweis in das Eingabefeld, was sehr benutzerfreundlich ist. Nun zu einem neuen Test der ODER-Suche:</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-71fc76c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="71fc76c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-258d87b" data-id="258d87b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-176c3d0 elementor-widget elementor-widget-image" data-id="176c3d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="527" height="272" src="https://progpi.de/wp-content/uploads/2025/01/test10-physiker-chemiker.png" class="attachment-large size-large wp-image-7887" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test10-physiker-chemiker.png 527w, https://progpi.de/wp-content/uploads/2025/01/test10-physiker-chemiker-300x155.png 300w" sizes="(max-width: 527px) 100vw, 527px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-18679d9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="18679d9" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f9e785" data-id="2f9e785" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-022209f elementor-widget elementor-widget-text-editor" data-id="022209f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Leider funktioniert die Oder-Suche möglicherweise seit dem Einbau der Radio-Buttons nicht mehr korrekt.  Denn &#8222;physiker, chemiker&#8220; führt jetzt zu einer sehr kleinen Treffermenge mit lediglich 3 Treffern.  ChatGPT darf also nochmal ran:</span></p><p><span style="color: #0000ff;">Die Eigenschaft bei &#8222;physiker, chemiker&#8220; sowohl physiker pur als auch chemiker pur zu finden ist <span style="font-size: 16px;">verlorengegangen.</span></span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-357980a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="357980a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-41be77b" data-id="41be77b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-a954c54 elementor-widget elementor-widget-image" data-id="a954c54" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="532" height="266" src="https://progpi.de/wp-content/uploads/2025/01/test11.png" class="attachment-large size-large wp-image-7894" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test11.png 532w, https://progpi.de/wp-content/uploads/2025/01/test11-300x150.png 300w" sizes="(max-width: 532px) 100vw, 532px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-195f2da elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="195f2da" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b2434ca" data-id="b2434ca" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-427aab0 elementor-widget elementor-widget-text-editor" data-id="427aab0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Nun stellt sich heraus, daß die früher mal ermittelten 185 Treffer für &#8222;physiker, chemiker&#8220; ebenfalls nicht korrekt waren. Unter den nun angezeigten Treffern sind jede Menge Physiker, Chemiker, oder Doppelberufler was der ODER Suche entspricht. Und eine Schnittmenge soll es auch noch geben:</p><p><span style="color: #0000ff;">OK, und jetzt soll &#8222;physiker+chemiker&#8220; eine Schnittmenge bilden</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c6f79f8 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c6f79f8" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-badac3f" data-id="badac3f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-16d7937 elementor-widget elementor-widget-image" data-id="16d7937" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="525" height="273" src="https://progpi.de/wp-content/uploads/2025/01/test12.png" class="attachment-medium_large size-medium_large wp-image-7901" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/test12.png 525w, https://progpi.de/wp-content/uploads/2025/01/test12-300x156.png 300w" sizes="(max-width: 525px) 100vw, 525px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-d728812 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d728812" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7551ce4" data-id="7551ce4" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ec58a5d elementor-widget elementor-widget-text-editor" data-id="ec58a5d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-style: normal;"><span style="font-size: 16px; color: #008000;">Was hat uns ChatGPT-4o gebaut?</span></h2><p>Zusammenfassend bleibt festzustellen, daß alle Anweisungen den Code zu ändern <b>ausschließlich per Prompt</b> erteilt werden konnten. Darüber hinaus hat ChatGPT kein einziges Mal einen Hinweis dazu bekommen <b>wo</b> im Python Quelltext Fehler oder funktionale Defizite vorliegen. Mit anderen Worten: Für die Funktionsfähigkeit der erstellten Python-Skripts waren <b>keine Programmierkenntnisse erforderlich</b>. Wie stark sich der Programmcode durch die jeweiligen Prompts verändert hat, ist auch an den Dateigrößen erkennbar:</p><pre> 3907 Byte test01.py<br /> 4345 Byte test02.py<br /> 5567 Byte test03.py<br /> 6188 Byte test04.py<br /> 8175 Byte test05.py<br /> 8366 Byte test06.py<br /> 8902 Byte test07.py<br /> 8938 Byte test08.py<br /> 9178 Byte test09.py<br />10120 Byte test10.py<br />10444 Byte test11.py<br />10792 Byte test12.py<br />11014 Byte test13.py<br />11980 Byte navigatorGUI.py</pre><p>Ganz fehlerfrei ist <span style="background-color: #fafafa; color: #2080ad; font-family: monospace, monospace; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">test12.py</span><span style="font-size: 16px; color: var( --e-global-color-text );"> übrigens noch nicht, was zu folgendem Prompt führt:</span></p><p><span style="color: #0000ff;">Wenn es keinen offenen Browser gibt, bevor das Python-Skript gestartet wird, dann blockiert die GUI nach der ersten Wikipedia-Anzeige</span></p><p><span style="font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">ChatGPT-4o erzeugt nun </span><span style="font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; font-family: monospace, monospace; background-color: #fafafa; color: #2080ad;">test13.py</span><span style="color: var( --e-global-color-text ); font-size: 16px;"> mit behobenem Fehler. Dann soll noch ein &#8222;Export-Button&#8220; hinzukommen&#8230;.. </span></p><p><span style="color: var( --e-global-color-text ); font-size: 16px;">Jetzt wäre anzumerken, daß ChatGPT ein paar mal die Anweisung &#8222;<span style="color: #0000ff;">den ganzen Code</span>&#8220; bekommen hat (wer noch nie programmiert hat, braucht es so), was den Chat natürlich verlängert. Nun kann ChatGPT-4o eine Version </span><span style="background-color: #fafafa; color: #2080ad; font-family: monospace, monospace; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">test14.py</span><span style="color: var( --e-global-color-text ); font-size: 16px;"> (zumindest temporär) nicht mehr komplett erstellen, und der Code ist unvollständig. Es ist damit </span><span style="color: var( --e-global-color-text ); font-size: 16px;">Zeit für einen neuen Chat mit </span><span style="background-color: #fafafa; color: #2080ad; font-family: monospace, monospace; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">test13.py</span><span style="color: var( --e-global-color-text ); font-size: 16px;"> als Anlage:</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-9191300 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="9191300" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-202ce56" data-id="202ce56" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-822c2d5 elementor-widget elementor-widget-image" data-id="822c2d5" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="768" height="223" src="https://progpi.de/wp-content/uploads/2025/01/ChatGPT_test13-768x223.png" class="attachment-medium_large size-medium_large wp-image-8002" alt="Button Export hinzu" srcset="https://progpi.de/wp-content/uploads/2025/01/ChatGPT_test13-768x223.png 768w, https://progpi.de/wp-content/uploads/2025/01/ChatGPT_test13-300x87.png 300w, https://progpi.de/wp-content/uploads/2025/01/ChatGPT_test13-1024x297.png 1024w, https://progpi.de/wp-content/uploads/2025/01/ChatGPT_test13.png 1186w" sizes="(max-width: 768px) 100vw, 768px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-5ef579e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5ef579e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-32ee8f9" data-id="32ee8f9" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ca1b9f0 elementor-widget elementor-widget-text-editor" data-id="ca1b9f0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p style="margin-bottom: 5px; font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-weight: 400;"><span style="font-size: 16px; color: var( --e-global-color-text );">ChatGPT wird jetzt nicht mehr mit einer unnötig gewordenen Hand-Skizze und Zwischenresultaten belastet und produziert   </span><span style="background-color: #fafafa; color: #2080ad; font-family: monospace, monospace; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">navigatorGUI.py</span><span style="color: var( --e-global-color-text ); font-size: 16px;">  (bzw. den Code für die Zwischenablage) völlig problemlos:</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2a2e9e7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2a2e9e7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0e31ade" data-id="0e31ade" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-95f825a elementor-widget elementor-widget-image" data-id="95f825a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="706" height="141" src="https://progpi.de/wp-content/uploads/2025/01/navigatorGUI_kein_param.png" class="attachment-medium_large size-medium_large wp-image-8003" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/navigatorGUI_kein_param.png 706w, https://progpi.de/wp-content/uploads/2025/01/navigatorGUI_kein_param-300x60.png 300w" sizes="(max-width: 706px) 100vw, 706px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-16ab39a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="16ab39a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5f9250f" data-id="5f9250f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-b32320b elementor-widget elementor-widget-text-editor" data-id="b32320b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: rgb(0, 128, 0); font-size: 16px; letter-spacing: 0.2px;">CSV-Daten exportieren</span></p><p style="font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-weight: 400;">Die Kurzanleitung hat ChatGPT-4o ohne weitere Hinweise erstellt.&nbsp;<span style="font-size: 16px; color: var( --e-global-color-text );">Und auch der neue Export-Button ist funktionsfähig:</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e02599a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e02599a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c0ab292" data-id="c0ab292" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-0148889 elementor-widget elementor-widget-image" data-id="0148889" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="613" height="263" src="https://progpi.de/wp-content/uploads/2025/01/navigatorGUI_charles.png" class="attachment-large size-large wp-image-8004" alt="" srcset="https://progpi.de/wp-content/uploads/2025/01/navigatorGUI_charles.png 613w, https://progpi.de/wp-content/uploads/2025/01/navigatorGUI_charles-300x129.png 300w" sizes="(max-width: 613px) 100vw, 613px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-d5a7901 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d5a7901" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e28b836" data-id="e28b836" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-852e0b1 elementor-widget elementor-widget-text-editor" data-id="852e0b1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p style="margin-bottom: 5px; font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-style: normal;"><span style="color: var( --e-global-color-text ); font-size: 16px;">Ein Klick auf Export erzeugt eine neue CSV-Datei mit 31 Datensätzen, in denen &#8222;Charles&#8220; bei den Namen oder in der Beschreibung vorkommt.</span></p><p style="margin-bottom: 5px; font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-style: normal;"><span style="color: var( --e-global-color-text ); font-size: 16px;"> </span></p><p style="margin-bottom: 5px; font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-style: normal;"><span style="color: var( --e-global-color-text ); font-size: 16px;"><b>Zusammenfassung:</b></span></p><p style="margin-bottom: 5px; font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-weight: 400;">Ob es gelingt, ChatGPT (oder auch <u><a href="https://progpi.de/perplexity-statt-google/">Perplexity</a></u>) quasi unüberwacht Code schreiben zu lassen, hängt im wesentlichen davon ab, welche Bibliotheken ChatGPT heranziehen kann, und wieviel Quelltext für die Aufgabenstellung schon in den Trainingsdaten des LLM (Large Language Model) existierte. Man sollte bei jeder Programmentwicklung bedenken, daß ChatGPT lokal abgelegte Dateien nicht kennt und möglicherweise aus Datenschutzgründen auch nie kennenlernen soll. Für die Erstellung der graphischen Oberfläche genügte hier eine grobe Skizze und ein Beispieldatensatz, der auch in der Skizze vorkommt. Das reichte für die Feldzuordnung vollkommen aus. Der hier experimentell durchgeführte Verzicht, den von ChatGPT erzeugten Code anzuschauen kann allerdings nur bei einfachen Aufgabenstellungen funktionieren.<span style="font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; color: var( --e-global-color-text );"> </span></p><p style="margin-bottom: 5px; font-variant-ligatures: normal; font-variant-caps: normal; font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-weight: 400;">Haben Sie ChatGPT auch schon &#8222;unüberwacht&#8220; Code programmieren lassen? <span style="font-size: 16px; font-weight: bold;">Kommentare sind erwünscht</span>.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a02524d elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a02524d" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-5a07b3b" data-id="5a07b3b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-94858ea elementor-widget elementor-widget-image" data-id="94858ea" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
																<a href="https://progpi.de/download/chatgpt-planet">
							<img loading="lazy" decoding="async" width="300" height="244" src="https://progpi.de/wp-content/uploads/2025/01/ChatGPT-Planet-Quelltext-Download-300x244.jpg" class="attachment-medium size-medium wp-image-8074" alt="ChatGPT-Planet-Download" srcset="https://progpi.de/wp-content/uploads/2025/01/ChatGPT-Planet-Quelltext-Download-300x244.jpg 300w, https://progpi.de/wp-content/uploads/2025/01/ChatGPT-Planet-Quelltext-Download.jpg 320w" sizes="(max-width: 300px) 100vw, 300px" />								</a>
															</div>
				</div>
					</div>
		</div>
				<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-05ee1f7" data-id="05ee1f7" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d9834a8 elementor-widget elementor-widget-text-editor" data-id="d9834a8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">In einer Welt, wo Bytes und Bits regieren,</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0.15cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Erhebt sich ChatGPT, um uns zu führen.</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Ein künstlich&#8216; Hirn, von Menschenhand gemacht,</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0.15cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Das Worte webt und kluge Sätze schafft.</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Es denkt in Codes, versteht der Sprache Klang,</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0.15cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Hilft Dir beim Schreiben, Tag für Tag entlang.</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Ob Poesie, ob Prosa, tief durchdacht,</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0.15cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Mit ChatGPT wird&#8217;s meisterhaft vollbracht.</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Doch nicht nur Worte formt es mit Bedacht,</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0.15cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Auch Programme werden hier erdacht.</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Python, die Sprache, die es oft benutzt,</span></p>
<p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0.25cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">Damit dein Code in neuer Klarheit nutzt.</span></p><p class="western" style="color: #000000; line-height: 18.4px; margin-bottom: 0.25cm; direction: ltr; background: transparent; font-family: Caladea, serif; font-size: 12pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;" align="center"><span style="font-family: Cantarell;">(ChatGPT-Dichtkunst)</span></p>								</div>
				</div>
					</div>
		</div>
				<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-ad0e9a1" data-id="ad0e9a1" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3bb9b4c elementor-widget elementor-widget-image" data-id="3bb9b4c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
																<a href="https://www.isbn.de/buch/9783910863583/chatgpt-openai-und-der-blaue-planet#Leseprobe" target="_blank" rel="noopener">
							<img loading="lazy" decoding="async" width="228" height="300" src="https://progpi.de/wp-content/uploads/2024/12/ChatGPT-Planet-Auflage2-Cover_Rot-228x300.png" class="attachment-medium size-medium wp-image-7651" alt="ChatGPT, Perplexity &amp;Co als Coach, Chatbot und Programmierer nutzen" srcset="https://progpi.de/wp-content/uploads/2024/12/ChatGPT-Planet-Auflage2-Cover_Rot-228x300.png 228w, https://progpi.de/wp-content/uploads/2024/12/ChatGPT-Planet-Auflage2-Cover_Rot-768x1010.png 768w, https://progpi.de/wp-content/uploads/2024/12/ChatGPT-Planet-Auflage2-Cover_Rot.png 779w" sizes="(max-width: 228px) 100vw, 228px" />								</a>
															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/chatgpt-python-gui/">Mit ChatGPT Python Oberflächen zaubern</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Der QtCreator 4.8.2 und CLang</title>
		<link>https://progpi.de/qtcreator-4-8-2-and-clang/</link>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Thu, 13 Feb 2020 10:13:28 +0000</pubDate>
				<category><![CDATA[Entwickungsumgebungen]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=3069</guid>

					<description><![CDATA[<p>Qt ist eine plattformunabhängige Klassenbibliothek und der Qt Creator die dazu passsende Entwicklungsumgebung (IDE). Und mit dem Raspberry Pi 4 steht auch eine Hardware zur Verfügung die (fast) alle Schritte der Programmerstellung in hinreichender Geschwindigkeit vollziehen kann. CLang ist ein Kapselung für bestimmte Compiler-Werkzeuge und existiert seit 2009. Im QtCreator kann dieses Werkzeug als Alternative [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/qtcreator-4-8-2-and-clang/">Der QtCreator 4.8.2 und CLang</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="3069" class="elementor elementor-3069">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-778ec3a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="778ec3a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-284b588" data-id="284b588" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-6954f4f elementor-widget elementor-widget-text-editor" data-id="6954f4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><a href="https://de.wikipedia.org/wiki/Qt_(Bibliothek)" target="_blank" rel="noopener">Qt</a></strong> ist eine plattformunabhängige Klassenbibliothek und der Qt Creator die dazu passsende Entwicklungsumgebung (IDE). Und mit dem Raspberry Pi 4 steht auch eine Hardware zur Verfügung die (fast) alle Schritte der Programmerstellung in hinreichender Geschwindigkeit vollziehen kann.</p><p><strong><a href="https://de.wikipedia.org/wiki/Clang" target="_blank" rel="noopener">CLang</a></strong> ist ein Kapselung für bestimmte Compiler-Werkzeuge und existiert seit 2009. Im QtCreator kann dieses Werkzeug als Alternative zu GCC eingesetzt werden. Compiler-Programmiersprachen wie C/C++ zwingen den Benutzer nicht, alle Warnungen zu einzelnen Quelltextzeilen zu beheben. Und diese Warnungen können auch von der Version der Compilers abhängen.</p><p>Seit Qt Creator 4.4 Beta werden Fehlermeldungen und Warnungen rechts neben der Quelltextzeile im Editor dargestellt (vgl. <a href="https://www.heise.de/developer/meldung/Qt-Creator-4-4-Beta-zeigt-Fehlermeldungen-im-Editor-3779713.html" target="_blank" rel="noopener">hier</a> ). Man muß sich aber im klaren sein, daß sich dadurch die Ladezeit von Quelltext verlängert und bei jeder Änderung innerhalb einer Zeile eine Syntaxprüfung stattfindet. Manche Programmierfehler fallen dadurch auf, noch bevor ein Compiler gestartet wird.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-3ce973e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="3ce973e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e93851a" data-id="e93851a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-60a670e elementor-widget elementor-widget-image" data-id="60a670e" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="768" height="263" src="https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_Fehlermeldungen-768x263.png" class="attachment-medium_large size-medium_large wp-image-3077" alt="CLang: Fehlermeldungen und Warnungen im Editor" srcset="https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_Fehlermeldungen-768x263.png 768w, https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_Fehlermeldungen-300x103.png 300w, https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_Fehlermeldungen-1024x351.png 1024w, https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_Fehlermeldungen.png 1194w" sizes="(max-width: 768px) 100vw, 768px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-98fafd3 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="98fafd3" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9baffe7" data-id="9baffe7" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-add0905 elementor-widget elementor-widget-text-editor" data-id="add0905" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Leider kann es derzeit vorkommen, daß die im Editor vorgenommene Syntaxprüfung zu &#8222;streng&#8220; ist. So werden z.B. Headerdateien nicht gefunden, woraus sich eine Kette von &#8222;Fehlern&#8220; ergibt. Sollten Sie dabei auf „Fehler“ stoßen, die den GCC-Compiler nicht im geringsten stören (vgl. <a href="https://forum.qt.io/topic/101095/strange-behavior-with-qt-creator-4-8-1-editor-and-coding-syntax" target="_blank" rel="noopener">hier</a>), dann können Sie die vorweggenommene Syntaxprüfung auch komplett abschalten:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-041b4a2 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="041b4a2" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b0bb8e9" data-id="b0bb8e9" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9f737af elementor-widget elementor-widget-image" data-id="9f737af" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="768" height="445" src="https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_deaktivieren-768x445.png" class="attachment-medium_large size-medium_large wp-image-3079" alt="Deaktivierung von CLang im QtCreator" srcset="https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_deaktivieren-768x445.png 768w, https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_deaktivieren-300x174.png 300w, https://progpi.de/wp-content/uploads/2020/02/QtCreator_CLang_deaktivieren.png 887w" sizes="(max-width: 768px) 100vw, 768px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-95b0233 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="95b0233" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3ad9973" data-id="3ad9973" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-02510a0 elementor-widget elementor-widget-text-editor" data-id="02510a0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Dazu öffnen Sie im QtCreator-Menü „Hilfe“ den Bereich „Plugins“ und deaktivieren im Dialog “Installierte Plugins“ den Haken bei „ClangCodeModel“ (wie abgebildet). Nach einem Neustart des QtCreator ist die vorgezogene Syntaxprüfung nun komplett abgeschaltet, und Sie sehen weder Fehler noch Warnungen hinter dem C/C++ Programmcode. Was beim Übersetzen von C/C++ Programmen genau geschieht, wird auf folgender Webseite sehr gut beschrieben:</p><p><a href="https://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Einf%C3%BChrung_zum_Buch/_Compiler" target="_blank" rel="noopener">https://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Einf%C3%BChrung_zum_Buch/_Compiler</a></p><p>In Qt existiert über die *.pro Projektdateien ein Format, das wunderbar für eine plattformunabhängige Programmierung unter Windows/Linux geeignet ist. </p><p> </p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/qtcreator-4-8-2-and-clang/">Der QtCreator 4.8.2 und CLang</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Der QtCreator auf dem Raspberry Pi</title>
		<link>https://progpi.de/der-qtcreator-auf-dem-raspberry-pi/</link>
					<comments>https://progpi.de/der-qtcreator-auf-dem-raspberry-pi/#comments</comments>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Wed, 05 Dec 2018 20:33:40 +0000</pubDate>
				<category><![CDATA[Entwickungsumgebungen]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[Kit]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt-Welcome]]></category>
		<category><![CDATA[QtCreator]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=388</guid>

					<description><![CDATA[<p>Die Installation und ein erster Start des QtCreator werden ab Seite 268 im Buch beschrieben. Sie werden dabei durch das Skript inst-qt5.sh unterstützt. Sobald Sie die Benutzeroberfläche des QtCreator sehen, schalten Sie unter Hilfe/Plugins zuerst den &#8222;Qt-Welcome&#8220; Screen ab. Das ist notwendig, weil der Raspberry Pi lediglich über OpenGL ES verfügt. Darüber hinaus wäre die [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/der-qtcreator-auf-dem-raspberry-pi/">Der QtCreator auf dem Raspberry Pi</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Die Installation und ein erster Start des QtCreator werden ab Seite 268 im <strong><a href="https://progpi.de/raspberry-pi-programmieren-mit-c-c-und-bash/">Buch</a></strong> beschrieben. Sie werden dabei durch das Skript <strong><em>inst-qt5.sh</em></strong> unterstützt. Sobald Sie die Benutzeroberfläche des QtCreator sehen, schalten Sie unter Hilfe/Plugins<strong> zuerst den &#8222;Qt-Welcome&#8220; Screen ab</strong>. Das ist notwendig, weil der Raspberry Pi lediglich über OpenGL ES verfügt. Darüber hinaus wäre die Anzeige einer Animation bevor die Benutzeroberfläche erscheint zwar hübsch aber nicht wirklich notwendig. </p>



<p class="wp-block-paragraph">Dann muß noch eingestellt werden welcher Compiler für C bzw. C++ als Programmiersprache aktiv werden soll. Das entspricht der Festlegung einer <strong>&#8222;Tool Chain&#8220;. </strong>Hier weichen die Bilder im <a href="https://progpi.de/raspberry-pi-programmieren-mit-c-c-und-bash/">Buch</a> ein wenig von der inzwischen aktuellen Version des QtCreator ab.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="537" src="https://progpi.de/wp-content/uploads/2019/01/qt_GCC_setting-1024x537.png" alt="" class="wp-image-402" srcset="https://progpi.de/wp-content/uploads/2019/01/qt_GCC_setting-1024x537.png 1024w, https://progpi.de/wp-content/uploads/2019/01/qt_GCC_setting-300x157.png 300w, https://progpi.de/wp-content/uploads/2019/01/qt_GCC_setting-768x403.png 768w, https://progpi.de/wp-content/uploads/2019/01/qt_GCC_setting.png 1548w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Pfadeinstellung beim QtCreator 4.2.0 </figcaption></figure>



<p class="wp-block-paragraph">Bei &#8222;C&#8220; als Compiler wird bei Compiler-Pfad &#8222;/usr/bin/gcc&#8220; eingetragen. Während des Eintragens bleibt die Schrift rot, bis ein gültiger Pfad und Dateiname eingetragen ist.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="725" src="https://progpi.de/wp-content/uploads/2018/12/qt_Kits_GCC-1024x725.png" alt="" class="wp-image-410" srcset="https://progpi.de/wp-content/uploads/2018/12/qt_Kits_GCC-1024x725.png 1024w, https://progpi.de/wp-content/uploads/2018/12/qt_Kits_GCC-300x212.png 300w, https://progpi.de/wp-content/uploads/2018/12/qt_Kits_GCC-768x544.png 768w, https://progpi.de/wp-content/uploads/2018/12/qt_Kits_GCC.png 1145w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Kits beim QtCreator 4.2.0</figcaption></figure>



<p class="wp-block-paragraph">Nach der Compilereinstellung verschwindet bei &#8222;Kits&#8220; der rote Punkt neben &#8222;Desktop(Vorgabe)&#8220;. Im nächsten Schritt kann ein Projekt entweder geladen oder neu erstellt werden. Beachten Sie bitte, daß die Erstellung auf einem Raspberry Pi deutlich länger dauert als auf einem großen PC.</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/der-qtcreator-auf-dem-raspberry-pi/">Der QtCreator auf dem Raspberry Pi</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://progpi.de/der-qtcreator-auf-dem-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Auf dem Raspberry Pi eine GUI programmieren</title>
		<link>https://progpi.de/raspberry-gui-programmieren/</link>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Sat, 24 Nov 2018 09:30:04 +0000</pubDate>
				<category><![CDATA[Entwickungsumgebungen]]></category>
		<category><![CDATA[dialog]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[whiptail]]></category>
		<category><![CDATA[zenity]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=1130</guid>

					<description><![CDATA[<p>Wer eine grafische Oberfläche (GUI) programmieren möchte, will damit dem Benutzer zu einer leichteren Bedienung verhelfen. Auch Raspbian Buster hat -wie alle Vorgänger- eine GUI bzw. einen Desktop der z.B. ein Öffnen, Verschieben und Vergrößern von Fenstern ermöglicht. Eine GUI mit C/C++ Das Design einer GUI kann heute mit sehr vielen Programmiersprachen und Bibliotheken geschehen. [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/raspberry-gui-programmieren/">Auf dem Raspberry Pi eine GUI programmieren</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wer eine grafische Oberfläche (<a href="https://de.wikipedia.org/wiki/Grafische_Benutzeroberfl%C3%A4che" target="_blank" rel="noopener"><u>GUI</u></a>) programmieren möchte, will damit dem Benutzer zu einer leichteren Bedienung verhelfen.  Auch Raspbian Buster hat -wie alle Vorgänger- eine GUI bzw. einen Desktop der z.B. ein Öffnen, Verschieben und  Vergrößern von Fenstern ermöglicht. </p>



<h2 class="wp-block-heading">Eine GUI mit C/C++</h2>



<p class="wp-block-paragraph">Das Design einer GUI kann heute mit sehr vielen Programmiersprachen und Bibliotheken geschehen.  So ist z.B. <a href="https://de.wikipedia.org/wiki/GTK_(Programmbibliothek)" target="_blank" rel="noopener"><u>GTK+</u></a> ein Toolkit mit dem grafische Oberflächen mit C++ programmiert werden. Als Anwender eines Betriebssystems wie Raspbian müssen Sie sich darüber Gedanken machen wie die Oberfläche Ihres Programms aussehen soll, damit es von Ihnen oder anderen leicht und sicher verwendet werden kann. Für die effektive Entwicklung von C/C++ Programmen brauchen Sie eine sogenannte Entwicklungsumgebung (<a href="https://de.wikipedia.org/wiki/Integrierte_Entwicklungsumgebung" target="_blank" rel="noopener"><u>IDE</u></a>), die einen Texteditor mit Syntaxhighlight mit Werkzeugen zur Programmerstellung vereint.  Der <a href="https://de.wikipedia.org/wiki/Qt_Creator" target="_blank" rel="noopener"><u>QtCreator</u></a> oder <a href="https://de.wikipedia.org/wiki/Code::Blocks" target="_blank" rel="noopener"><u>Code::Blocks</u></a> sind dafür bekannte Beispiele. Auch <a href="https://de.wikipedia.org/wiki/Geany" target="_blank" rel="noopener"><u>Geany</u></a> ist wunderbar auf dem Raspberry Pi verwendbar. </p>



<h2 class="wp-block-heading">Eine GUI mit Bash </h2>



<p class="wp-block-paragraph">Etwas anders sieht die Vorgehensweise aus, wenn Sie systemnahe Dinge tun wollen (z.B. Dateien auflisten und auswählen) und keine zu hohen Ansprüche an die zu entwickelnde Bedienoberfläche (GUI) stellen. Ein einfacher Programmstarter kann darin bestehen, mehrere Programme mit unterschiedlichen Parametern aufzulisten, per Cursortasten eine Auswahl zu treffen und mit Enter das gewünschte Programm zu starten. So etwas hat es auch schon gegeben, als der PC noch sehr jung war und nur ASCII-Zeichen anzeigen konnte. </p>



<p class="wp-block-paragraph">Wenn Sie mit <a href="https://de.wikipedia.org/wiki/Bash_(Shell)" target="_blank" rel="noopener"><u>Bash</u></a> eine GUI entwickeln wollen, dann gibt es dafür Tools in folgender Abfolge bzw. Leistungsfähigkeit:</p>



<p class="wp-block-paragraph"><strong>whiptail -&gt; dialog -&gt; Zenity</strong></p>



<p class="wp-block-paragraph">Der RPi-Desktop ist die grafische Oberfläche des Raspbian Betriebssystems. Während whiptail und dialog nur mit dem ASCII-Zeichensatz arbeiten, benötigt Zenity den RPi-Desktop &#8211; was aber zu einer viel schöneren optischen Darstellung führt. Wie eine Zenity Oberfläche aussehen kann, sehen Sie bei den <strong><a href="https://progpi.de/videos/"><u>Screencast</u></a></strong>-Videos zum Buch.  Ein guter Einstieg um eine Raspberry GUI zu programmieren.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="640" src="https://progpi.de/wp-content/uploads/2019/07/zenitygui_bash_script-1024x640.png" alt="Eine zenity GUI und deren Bash Skript" class="wp-image-1145" srcset="https://progpi.de/wp-content/uploads/2019/07/zenitygui_bash_script-1024x640.png 1024w, https://progpi.de/wp-content/uploads/2019/07/zenitygui_bash_script-300x188.png 300w, https://progpi.de/wp-content/uploads/2019/07/zenitygui_bash_script-768x480.png 768w, https://progpi.de/wp-content/uploads/2019/07/zenitygui_bash_script.png 1512w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><strong>Eine aktive Zenity-GUI und deren Bash Skript</strong></figcaption></figure>



<p class="wp-block-paragraph">Vielleicht werden Sie sich jetzt fragen, warum man sich überhaupt mit whiptail oder <a href="https://wiki.ubuntuusers.de/Dialog/" target="_blank" rel="noopener"><u>dialog</u></a> beschäftigen soll, wenn <a href="https://de.wikipedia.org/wiki/Zenity" target="_blank" rel="noopener"><u>Zenity</u></a> optisch viel ansprechender ist. Aber in der Praxis stellt sich diese Frage eher in der Form, ob Sie bei einem Fernzugriff (z.B. auf einen Raspberry Pi Zero W) auf der Zielplattform eine grafische Oberfläche laufen haben. Wenn das der Fall ist, arbeiten Sie z.B. mit TightVNC und können folglich Zenity verwenden. Wenn aber die Zielplattform keinen RPi-Desktop hat (es gibt ja auch ein Raspbian ohne GUI) dann sind nur noch whiptail und dialog verwendbar. Der Begriff <strong><u><a href="https://progpi.de/basiswissen#asciigui">ASCII-GUI</a></u></strong> wird übrigens auch bei <a href="https://progpi.de/basiswissen/"><strong><u>Basiswissen</u></strong></a> erläutert. </p>



<p class="wp-block-paragraph">Alle drei genannten Tools (whiptail,dialog,Zenity) haben übrigens eine recht ähnliche Aufrufsyntax, so daß ein Umstieg nicht schwerfällt, wenn man mit Bash vertraut ist. Zenity-Dialoge können übrigens auch in Python sowie anderen Programmiersprachen erstellt werden.</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/raspberry-gui-programmieren/">Auf dem Raspberry Pi eine GUI programmieren</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
