Programmering nivå 2

Kap 5.4 – Skapa GUI med tkinter

Bygg ett enkelt fönster med textfält, knapp och funktioner som reagerar på klick.

Mål med lektionen

När du har arbetat klart med denna lektion ska du:

  • Förstå vad ett grafiskt användargränssnitt, GUI, är och varför det används.
  • Känna till grunderna i biblioteket tkinter.
  • Kunna skapa ett enkelt GUI med etiketter, textfält, knappar och funktioner.
  • Kunna koppla GUI-element till funktioner i din kod.

Så här lär du dig bäst

Du lär dig bäst genom att först bygga ett enkelt fönster med ett fåtal komponenter: en etikett, ett textfält och en knapp. När du ser hur gränssnittet reagerar på dina klick och inmatningar kan du börja koppla det till funktioner, till exempel att spara något, visa resultat eller hämta data från en fil. Tänk på att tkinter arbetar med en händelsestyrd modell: programmet väntar på att användaren ska göra något.

Centrala begrepp

  • GUI - Graphical User Interface, ett användarvänligt gränssnitt med knappar, textfält och fönster.
  • tkinter - Ett inbyggt Pythonbibliotek för att skapa GUI-program.
  • Widget - Ett grafiskt element, till exempel knapp, etikett eller textfält.
  • Eventhantering - Koden som reagerar när användaren klickar, skriver eller trycker.

Exempel: Enkel GUI-applikation

import tkinter as tk

def visa_meddelande():
    namn = namn_entry.get()
    resultat_label.config(text=f"Hej, {namn}!")

# Skapa fönster
rot = tk.Tk()
rot.title("Mitt första GUI")

# Skapa etikett och textfält
tk.Label(rot, text="Vad heter du?").pack()
namn_entry = tk.Entry(rot)
namn_entry.pack()

# Skapa knapp
tk.Button(rot, text="Säg hej", command=visa_meddelande).pack()

# Skapa resultatetikett
resultat_label = tk.Label(rot, text="")
resultat_label.pack()

# Starta programmet
rot.mainloop()

Att förstå koden

  • tk.Tk() skapar ett nytt fönster.
  • Entry används för att läsa in text från användaren.
  • Button skapar en knapp som kan kopplas till en funktion.
  • pack() används för att placera ut element i fönstret.
  • command=visa_meddelande kopplar funktionen till knapptryckningen.
  • mainloop() startar GUI-programmet och väntar på användarens händelser.

Så fungerar händelsestyrning

I ett terminalprogram körs koden ofta uppifrån och ned. I ett GUI-program skapas först fönstret och dess widgets. Sedan väntar programmet på händelser, till exempel att användaren klickar på en knapp. När knappen trycks körs funktionen som är kopplad till command.

Öva - Gör ett eget GUI-program

  1. Skapa ett program med ett fönster där användaren kan skriva in data, till exempel ett namn eller ett tal.
  2. Lägg till en knapp som kör en funktion.
  3. Visa ett resultat i fönstret med en Label.
  4. Lägg till fler widgets, till exempel en dropdown, checkruta eller lista.
  5. Testa att koppla GUI:t till funktioner du skrivit tidigare i kursen.

Sammanfattning

  • Du har skapat ett första grafiskt gränssnitt med tkinter.
  • Du har använt etiketter, textfält och knappar.
  • Du har kopplat knapptryck till funktioner i din kod.
  • Du har påbörjat en övergång från terminalbaserade program till användarvänliga GUI-lösningar.

Tillbaka till Kapitel 5