python.casapython.casa
Home
  • Thema 1 - Einführung Programmiersprache
  • Thema 2 - Variablen und Datentypen
  • Thema 3 - Boolsche Algebra und Zeichenketten
  • Thema 4 - Datum und Zeit
  • Thema 5 - Kontrollstrukturen und Listen
  • Thema 6 - Funktionen und Flowcharts
  • Thema 7 - Objektorientierte Programmierung
  • Thema 8 - Ein- und Ausgabe
  • Thema 9 - Module und Import
  • Thema 10 - Datenbanken
  • Thema 11 - Grafische Benutzeroberfläche
  • Thema 12 - Webapplikation mit Python Flask
  • Thema 13 - Versionskontrolle mit Git
  • Thema 14 - Dokumentation mit Markdown
  • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
GitHub
Home
  • Thema 1 - Einführung Programmiersprache
  • Thema 2 - Variablen und Datentypen
  • Thema 3 - Boolsche Algebra und Zeichenketten
  • Thema 4 - Datum und Zeit
  • Thema 5 - Kontrollstrukturen und Listen
  • Thema 6 - Funktionen und Flowcharts
  • Thema 7 - Objektorientierte Programmierung
  • Thema 8 - Ein- und Ausgabe
  • Thema 9 - Module und Import
  • Thema 10 - Datenbanken
  • Thema 11 - Grafische Benutzeroberfläche
  • Thema 12 - Webapplikation mit Python Flask
  • Thema 13 - Versionskontrolle mit Git
  • Thema 14 - Dokumentation mit Markdown
  • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
GitHub
  • Stundenplan
  • Teil 1

    • Thema 1 - Einführung Programmiersprache
      • Slides Thema 1
      • Übungen Thema 1
    • Thema 2 - Variablen und Datentypen
      • Slides Thema 2
      • Übungen Thema 2
    • Thema 3 - Boolsche Algebra und Zeichenketten
      • Slides Thema 3
      • Übungen Thema 3
    • Thema 4 - Datum und Zeit
      • Slides Thema 4
      • Übungen Thema 4
    • Thema 5 - Kontrollstrukturen und Listen
      • Slides Thema 5
      • Übungen Thema 5
    • Thema 6 - Funktionen und Flowcharts
      • Slides Thema 6
      • Übungen Thema 6
    • Thema 7 - Objektorientierte Programmierung
      • Slides Thema 7
      • Übungen Thema 7
    • Thema 8 - Ein- und Ausgabe
      • Slides Thema 8
      • Übungen Thema 8
  • Teil 2

    • Thema 9 - Module und Import
      • Slides Thema 9
      • Übungen Thema 9
    • Thema 10 - Datenbanken
      • Slides Thema 10
      • Übungen Thema 10
    • Thema 11 - Grafische Benutzeroberfläche
      • Slides Thema 11
      • Übungen Thema 11
        • Aufgaben
          • Aufgabe 11.1: Fenster anpassen
          • Aufgabe 11.2: Fenster fixieren
          • Aufgabe 11.3: Eingabefelder erstellen
          • Aufabe 11.4: Fehler in Messagebox
    • Thema 12 - Webapplikation mit Python Flask
      • Slides Thema 12
      • Übungen Thema 12
    • Thema 13 - Versionskontrolle mit Git
      • Slides Thema 13
      • Übungen Thema 13
    • Thema 14 - Dokumentation mit Markdown
      • Slides Thema 14
    • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
      • Slides Thema 15
      • Übungen Thema 15
  • Prüfung

    • Wissensprüfung 1
    • Wissensprüfung 2
    • Leistungsnachweis

Übungen Thema 11

Aufgaben

Aufgaben zum Thema.

Aufgabe 11.1: Fenster anpassen

Verwenden Sie den Code von gui.py und passen Sie ihn wie folgt an:

  • Bennen Sie den Titel des Fenster auf Kalkulator um.
  • Ändern Sie den Text des change_button auf Berechnen.
  • Ersetzen Sie die Funktion button_action mit dieser:
def button_action(x=1, y=2):
	anweisungs_label.config(text=f'Sie Summe von {x} und {y} ist {x+y}')
  • Ändern Sie den Text des anweisungs_label auf Was ergibt 1 + 2?.

Führen Sie das Programm aus.

⭐ Fenster anpassen.py

Aufgabe 11.2: Fenster fixieren

Verwenden Sie den Code oder Lösung aus der Aufgabe 1.1. In dieser Aufgabe möchten Sie die Grösse des Fenster ändern und die Breite der der Zellen im Koordinatensystem festlegen. Dazu verwenden Sie diesen Code:

fenster.geometry('300x200')
rows = 9
columns = 9
for i in range(rows):
    fenster.rowconfigure(index=i,weight=1)
for i in range(columns):
    fenster.columnconfigure(index=i, weight=1)

Fügen Sie diesen Code nach Zeile 7 ein.

Damit die Elemente in der Mitte platziert werden, verwenden Sie diesen Code:

# Elemente mit Grid laden
anweisungs_label.grid(row=1, column=4, pady=10, padx=10)
change_button.grid(row=2, column=4, pady=10, padx=10)
exit_button.grid(row=3, column=4, pady=10, padx=10)

Führen Sie das Programm aus.

⭐ Fenster fixieren.py

Aufgabe 11.3: Eingabefelder erstellen

Verwenden Sie den Code von Aufgabe 11.2 und ersetzen Sie Teile aus dem Code mit den folgenden Teilen.

Die Funktion berechnet die Summe aus Eingabefelder:

# Funktion für Button
def button_action():
    x = float(zahl1.get())
    y = float(zahl2.get())
    label2.config(text=f'= {x+y}')

Die Elemente bestehen aus diesen Definitionen:

# Button und Labels erstellen
zahl1 = Entry(fenster, width=20)
label1 = Label(fenster, text='+')
zahl2 = Entry(fenster, width=20)
label2 = Label(fenster, text='= ?')
change_button = Button(fenster, text='Berechnen', command=button_action)
exit_button = Button(fenster, text='Beenden', command=fenster.quit)

Die Positionierung wird neu gemacht:

# Elemente mit Grid laden
zahl1.grid(row=0, column=4, pady=0, padx=10)
label1.grid(row=1, column=4, pady=0, padx=0)
zahl2.grid(row=2, column=4, pady=0, padx=10)
label2.grid(row=3, column=4, pady=0, padx=0)
change_button.grid(row=4, column=4, pady=0, padx=0)
exit_button.grid(row=5, column=4, pady=0, padx=10)

Führen Sie das Programm aus und testen Sie es mit verschiedenen Eingaben.

⭐ Eingabefelder erstellen.py

Aufabe 11.4: Fehler in Messagebox

Verwenden Sie die Lösung aus Aufgabe 11.3 als neuer Code. Vielleicht haben Sie es festgestellt, wenn die Eingabefelder leer sind, stürtzt das Programm ab. Das möchten wir nun verbessern.

Wir erinnern uns an die try und except Statements und möchten nun die Fehlermeldung in einer Messagebox ausgeben.

Importieren Sie dazu die Messagebox:

from tkinter import messagebox

Anschliessend passen Sie die Methode folgendermassen an:

# Funktion für Button
def button_action():
    try:
        x = float(zahl1.get())
        y = float(zahl2.get())
        label2.config(text=f'= {x+y}')
    except BaseException as error:
        messagebox.showerror(message=error, title='Error')

Führen Sie das Programm aus und machen Sie ungültige Eingaben.

⭐ Fehler in Messageboxn.py

Edit this page
Last Updated:
Contributors: Janik von Rotz
Prev
Slides Thema 11