Tkinter on Pythonisse sisseehitatud moodul, millega saab luua graafilisi aknaid, nuppe, sisestusvälju ja palju muud. See põhineb Tcl/Tk teekidel ja on vaikimisi olemas kõigis Python’i standardpaigaldustes.
Põhiprintsiibid:
Tkinter’i kasutamine põhineb järgmisel loogikal:
Loo põhiaken (Tk)
Lisa sinna vidinad (nupud, sildid, sisestusväljad jne)
Käivita sündmuste tsükkel (mainloop)
Lihtne näide: Põhistruktuur:
import tkinter as tk
# Loo põhiaken
aken = tk.Tk()
aken.title("Minu esimene GUI")
aken.geometry("300x200")
# Lisa tekstisilt
silt = tk.Label(aken, text="Tere, maailm!")
silt.pack()
# Käivita rakendus
aken.mainloop()
Label – Tekstiväli
silt =tk.Label(aken,text="See on tekst",fg="blue",font=("Arial",14))
silt.pack()
Button – Nupp
def vajutati():
print("Nuppu vajutati!")
nupp = tk.Button(aken, text="Vajuta mind", command=vajutati)
nupp.pack()
Entry – Sisestusväli
sisestus = tk.Entry(aken)
sisestus.pack()
Text – Mitmerealine tekstikast
tekstikast = tk.Text(aken, height=5, width=30)
tekstikast.pack()
Checkbutton – Märkeruut
valik = tk.IntVar()
märk = tk.Checkbutton(aken, text="Valik", variable=valik)
märk.pack()
istbox – Valikuloend
import tkinter as tkaken = tk.Tk()aken.title("Listbox näide")
# Loendi loomine
loend = tk.Listbox(aken)
for vili in ["Õun", "Banaan", "Apelsin", "Ploom"]:
loend.insert(tk.END, vili)
loend.pack()
# Valiku näitamine
def näita_valik():
try:
valitud = loend.get(loend.curselection())
silt.config(text=f"Valisid: {valitud}")
except:
silt.config(text="Palun vali midagi!")
tk.Button(aken, text="Näita valikut", command=näita_valik).pack()
silt = tk.Label(aken)
silt.pack()
aken.mainloop()
Paigutusmeetodid
pack() – lihtne järjestus
tk.Label(aken, text="Üks").pack()
tk.Button(aken, text="Kaks").pack()
grid() – täpne paigutus ridade ja veergudega
tk.Label(aken, text="Eesnimi:").grid(row=0, column=0)
tk.Entry(aken).grid(row=0, column=1)
place() – paigutus x/y koordinaatide järgi
tk.Label(aken, text="Käsitsi paigutus").place(x=50, y=30)
⚠️ Ära kasuta pack() ja grid()/place() samas konteineris!
CustomTkinter:
CustomTkinteril on sama rakendus kui tavalisel Tkinteril, kuid selle nuppude taustad ja ikoonid on ilusamad ja tõsisemad!
Näidis:
import customtkinter as ctk
# Valikuline: tee tume või hele teema
ctk.set_appearance_mode("System") # "Dark", "Light", "System"
ctk.set_default_color_theme("blue") # või "green", "dark-blue"
# Aken
app = ctk.CTk()
app.title("CustomTkinter näidis")
app.geometry("400x300")
# Silt
label = ctk.CTkLabel(app, text="Tere tulemast!", font=("Arial", 20))
label.pack(pady=20)
# Sisend
entry = ctk.CTkEntry(app, placeholder_text="Sisesta midagi...")
entry.pack(pady=10)
# Nupp
def nupp_vajutatud():
sisend = entry.get()
label.configure(text=f"Tere, {sisend}!")
button = ctk.CTkButton(app, text="Kinnita", command=nupp_vajutatud)
button.pack(pady=10)
# Käivitamine
app.mainloop()