Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:beispiele

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:beispiele [2022/03/04 16:59] – [Auto] roehnerde:beispiele [2022/08/25 21:33] (aktuell) – [EAN-Prüfung] roehner
Zeile 1: Zeile 1:
 ===== Beispiele ===== ===== Beispiele =====
 ==== EAN-Prüfung ==== ==== EAN-Prüfung ====
 +=== Tkinter/TTK ===
  
 Die EAN-Prüfung ist ein Beispiel für eine einfache GUI-Anwendung. Sie hat ein Entry-Widget für die Eingabe einer EAN und ein Text-Widget für die mehrzeilige Ausgabe von Ergebnissen. Die EAN-Prüfung ist ein Beispiel für eine einfache GUI-Anwendung. Sie hat ein Entry-Widget für die Eingabe einer EAN und ein Text-Widget für die mehrzeilige Ausgabe von Ergebnissen.
Zeile 14: Zeile 15:
     #Verarbeitung     #Verarbeitung
     if not EAN.isdigit():     if not EAN.isdigit():
-        self.ausgeben('Eine EAN darf keine Zeichen aus Ziffern enthalten!')+        self.ausgeben('Eine EAN darf keine anderen Zeichen als Ziffern enthalten!')
     if len(EAN) == 13:     if len(EAN) == 13:
         self.ausgeben('Länge der EAN: 13')         self.ausgeben('Länge der EAN: 13')
Zeile 62: Zeile 63:
 **Download:** **Download:**
   *[[https://www.guipy.de/examples/de/ean.zip |ean.zip]]    *[[https://www.guipy.de/examples/de/ean.zip |ean.zip]] 
 +
 +=== Qt Variante der EAN-Prüfung ===
 +In Qt haben wir ein LineEdit-Widget für die Eingabe und ein PlainTextWidget für die Ausgabe. Um die EAN zu lesen, verwenden wir die Methode //text()// des LineEdit-Widgets.
 +
 +<code python>
 +    EAN = self.leEAN.text()
 +</code>
 +
 +Die Ausgabe ist in Qt einfacher als in Tkinter/TTK:
 +
 +<code python>
 +    def output(self, line):
 +        self.Output.appendPlainText(line)
 +</code>
 +  
 +**Download**:
 +  *[[https://www.guipy.de/examples/de/qtean.zip|qtean.zip]] 
  
 ==== Auto ==== ==== Auto ====
Zeile 83: Zeile 101:
   self.auto1 = Auto('DA RR 1013', 47, 7.3)   self.auto1 = Auto('DA RR 1013', 47, 7.3)
 </code> </code>
 +
 +=== Tkinter/TTK ===
  
 Beim Tanken wird die in das Entry-Widget eingegebene Menge über die get()-Methode der zum Widget gehörenden Kontrollvariablen //eMengeCV// eingelesen und mittels //float// in den benötigten Datentyp konvertiert. Beim Tanken wird die in das Entry-Widget eingegebene Menge über die get()-Methode der zum Widget gehörenden Kontrollvariablen //eMengeCV// eingelesen und mittels //float// in den benötigten Datentyp konvertiert.
Zeile 98: Zeile 118:
 Dann wird gemäß dem EVA-Prinzip die eingegebene Menge in der Methode //tanken()// verarbeitet.  Dann wird gemäß dem EVA-Prinzip die eingegebene Menge in der Methode //tanken()// verarbeitet. 
  
-Abschließend erfolgt die Ausgabe des Ergbnisses in einer eigenen Methode //anzeigen()//. Die Werte für Kennzeichen, Tankinhalt und Kilometerstand werden über die get()-Methoden der Klasse Auto abgerufen und an die set()-Methoden der Kontrollvariablen eKennzeichenCV, eTankinhaltCV und eKilometerstandCV übergeben:+Abschließend erfolgt die Ausgabe des Ergebnisses in einer eigenen Methode //anzeigen()//. Die Werte für Kennzeichen, Tankinhalt und Kilometerstand werden über die get()-Methoden der Klasse Auto abgerufen und an die set()-Methoden der Kontrollvariablen eKennzeichenCV, eTankinhaltCV und eKilometerstandCV übergeben:
  
 <code python> <code python>
Zeile 113: Zeile 133:
   *[[https://www.guipy.de/examples/de/auto.zip |auto.zip]]    *[[https://www.guipy.de/examples/de/auto.zip |auto.zip]] 
  
 +=== Qt ===
 +
 +Beim Tanken wird die eingegebene Menge über die text()-Methode des LineEdit-Widgets eingelesen und mittels //float// in den benötigten Datentyp konvertiert.
 +
 +<code python>
 +    def bTanken_clicked(self, checked):
 +        # Eingabe über die GUI
 +        Menge = float(self.leMenge.text())
 +        # Verarbeitung
 +        self.auto1.tanken(Menge)
 +        # Ausgabe
 +        self.anzeigen()
 +</code>
 +
 +Dann wird gemäß dem EVA-Prinzip die eingegebene Menge in der Methode //tanken()// verarbeitet. 
 +
 +Abschließend erfolgt die Ausgabe des Ergebnisses in einer eigenen Methode //anzeigen()//. Die Werte für Kennzeichen, Tankinhalt und Kilometerstand werden über die get()-Methoden der Klasse Auto abgerufen und an die setText()-Methoden der der LineEdit-Widgets für Kennzeichen, Tankinhalt und Kilometerstand übergeben:
 +
 +<code python>
 +        self.leKennzeichen.setText(self.auto1.get_Kennzeichen())
 +        self.leTankinhalt.setText(str(self.auto1.get_Tankinhalt()))
 +        self.leKilometerstand.setText(str(self.auto1.get_Kilometerstand()))
 +        self.lAuto.move(self.auto1.get_Kilometerstand(), 160)
 +</code>
 +
 +Dem Label-Widget //lAuto// wurde im Objektinspektor über das Attribut //Pixmap// ein Auto-Bild zugewiesen. Mit der move()-Methode wird die x-Position des Autos auf den Kilometerstand gesetzt.
 +
 +
 +**Download**
 +  *[[https://www.guipy.de/examples/de/qtauto.zip |qtauto.zip]] 
  
 ==== Verkettete Liste ==== ==== Verkettete Liste ====
-Die Programmierung dynamische Datenstrukturen stellt eine erhebliche Herausforderung dar, denn man muss das Konzept der Verkettung mittels Verweisen verstehen und komplexe Operationen mit Verweisen druchführen. Neu dabei sind Variablen die Werte haben, welche Verweise auf Objekte bzw. Adressen sind. +Die Programmierung dynamische Datenstrukturen stellt eine erhebliche Herausforderung dar, denn man muss das Konzept der Verkettung mittels Verweisen verstehen und komplexe Operationen mit Verweisen durchführen. Neu dabei sind Variablen die Werte haben, welche Verweise auf Objekte bzw. Adressen sind. 
  
 In diesem Beispiel betrachten wir eine einfach verkettete lineare Liste. Die Liste selbst wird als Klasse //VerketteteListe// modelliert mit Knoten als Listenelementen. Als Attribut hat sie einen Verweis auf den //Anfang// der Liste. In diesem Beispiel betrachten wir eine einfach verkettete lineare Liste. Die Liste selbst wird als Klasse //VerketteteListe// modelliert mit Knoten als Listenelementen. Als Attribut hat sie einen Verweis auf den //Anfang// der Liste.
Zeile 131: Zeile 181:
   - Die Liste ist leer.   - Die Liste ist leer.
   - Es soll am Anfang eingefügt werden.   - Es soll am Anfang eingefügt werden.
-  - Es soll am Ende eingefügt werdenn.+  - Es soll am Ende eingefügt werden.
   - Es soll zwischen zwei Knoten eingefügt werden.   - Es soll zwischen zwei Knoten eingefügt werden.
  
de/beispiele.1646409553.txt.gz · Zuletzt geändert: 2022/03/04 16:59 von roehner