Graphical interface

Tkinter – Graafilise kasutajaliidese loomine

Mõiste: tkinter on Pythoni sisseehitatud moodul, mis võimaldab luua graafilisi kasutajaliideseid (GUI).

Põhikomponendid:

  • Akna loomine: aken = tk.Tk() aken.title("Pealkiri") aken.geometry("laiusxkõrgus")
  • Peatselt käivitatav GUI: aken.mainloop()

Olulised vidinad (komponendid):

  • Label – kuvab teksti
    tk.Label(aken, text="Tekst")
  • Button – nupp, millele saab määrata tegevuse
    tk.Button(aken, text="Vajuta", command=funktsioon)
  • Entry – üherealine tekstiväli
    tk.Entry(aken)
  • Text – mitmerealine tekstiväli
    tk.Text(aken)
  • Checkbutton – märkeruut
    tk.Checkbutton(aken, variable=muutuja)
  • Listbox – valikuloend

Paigutusviisid:

  • pack() – järjestab vidinad vertikaalselt või horisontaalselt
  • grid() – asetab elemendid tabelilaadselt (rida, veerg)
  • place() – määrab asukoha koordinaatide abil (x, y)

Sündmuste käsitlemine (bind):

  • <Button-1> – vasaku hiireklõpsu sündmus
  • <Key> – klahvivajutus
  • <Motion> – hiire liikumine

Näide sündmuse käsitlemisest:

aken.bind("<Key>", lambda event: print(event.char))

Näide – lihtne vorm:

import tkinter as tk

def tervita():
    silt.configure(text=f"Tere, {sisestus.get()}!")

aken = tk.Tk()
aken.title("Tervitusvorm")

tk.Label(aken, text="Sisesta nimi:").pack()
sisestus = tk.Entry(aken)
sisestus.pack()
tk.Button(aken, text="Tervita", command=tervita).pack()
silt = tk.Label(aken)
silt.pack()

aken.mainloop()

CustomTkinter – Moodne GUI välimus

Paigaldamine:

pip install customtkinter

Seadistamine:

set_appearance_mode("Light" / "Dark" / "System")
set_default_color_theme("blue")

CustomTkinter vidinad:

  • CTkLabel – tekst
  • CTkButton – nupp
  • CTkEntry – sisestusväli
  • CTkTextbox – mitmerealine tekst
  • CTkCheckBox – märkeruut
  • CTkSwitch – lüliti
  • CTkSlider – liugur
  • CTkProgressBar – edenemisnäidik
  • CTkOptionMenu – valikumenüü
  • CTkFrame – konteiner

Näide – mitme vahekaardiga aken:

import customtkinter as ctk

app = ctk.CTk()
tabs = ctk.CTkTabview(app)
tabs.add("Pealeht")
tabs.add("Seaded")

label = ctk.CTkLabel(tabs.tab("Pealeht"), text="Tere tulemast!")
label.pack()

slider = ctk.CTkSlider(tabs.tab("Seaded"), from_=0, to=1)
slider.pack()

app.mainloop()

Failidega töötamine GUI-s

  • Faili salvestamine:
    filedialog.asksaveasfilename() – avab salvestusfaili dialoogi
  • Faili avamine:
    filedialog.askopenfilename() – avab faili valimise dialoogi
  • Teavitused:
    messagebox.showinfo() – kuvab infoakna