Tkinter
Button Widget
Widget "button" neboli tlačítko, je instance třídy Button, která se používá pro tvorbu tlačítek různého druhu. Objekt "button" umožňuje interaktivní komunikaci s uživatelem. Stiskem tlačítka prostřednictvím myši může být spuštěna nějaká akce. Tlačítka mohou také obsahovat text a obrázky, stejně jako popisky (labels). Zatímco však text v popiscích může být zobrazen různými fonty, v tlačítku lze použít pouze jeden font. Text tlačítka ale může mít více řádků.Deklarace tlačítka pomocí vlastní třídy
Následující skript definuje dvě tlačítka: jedno pro zavření aplikace, druhé pro zobrazení textu "Tkinter is easy to use!".from tkinter import * class App: def __init__(self, master): frame = Frame(master) frame.pack() self.button = Button(frame, text="QUIT", fg="red", command=frame.quit) self.button.pack(side=LEFT) self.slogan = Button(frame, text="Hello", command=self.write_slogan) self.slogan.pack(side=LEFT) def write_slogan(self): print "Tkinter is easy to use!" root = Tk() app = App(root) root.mainloop()
Výsledek předchozího skriptu vypadá takto:
Poznámka:
Při používání IDLE nebo Pyscripter se vyvarujeme použití příkazu "QUIT" pro zavření okna.
IDLE i Pyscripter používájí Tkinter i nativní metodu "quit". Při použití "quit" v uživatelském programu dojde k nepříjemné kolizi našeho programu s programem IDE.
Dynamický obsah tlačítka
V následujícím příkladě vytvoříme tlačítko s číslem postupně se zvětšujícím o hodnotu 1, dokud se nestiskne tlačítko Stop:import tkinter as tk counter = 0 def counter_label(label): counter = 0 def count(): global counter counter += 1 label.config(text=str(counter)) label.after(1000, count) count() root = tk.Tk() root.title("Counting Seconds") label = tk.Label(root, fg="dark green") label.pack() counter_label(label) button = tk.Button(root, text='Stop', width=25, command=root.destroy) button.pack() root.mainloop()Výsledek předchozího skriptu vypadá takto: