Python je všestranný programovací jazyk, který lze použít k implementaci různých typů aplikací. Má mnoho typů modulů pro vytváření aplikací založených na GUI (Graphical User Interface). Python tkinter je jedním z nich. Pomocí modulu tkinter lze snadno implementovat jakoukoli desktopovou aplikaci. Bude lepší, když budete mít základní znalosti programování v Pythonu, abyste se naučili použití modulu Python tkinter. V tomto návodu jsou uvedena různá použití modulu Python tkinter k vytváření aplikací GUI.
Nainstalujte modul Tkinter
Modul tkinter není v Pythonu standardně nainstalován. Chcete-li nainstalovat modul tkinter ve verzi Python 3+, musíte spustit následující příkaz:
$ sudo apt Nainstalujte python3-tk
Různé Tkinter Widgety
Modul tkinter obsahuje různé widgety pro různé účely.
Název widgetu | Účel |
Označení | Používá se k zobrazení pomocné zprávy pro uživatele. |
Knoflík | Slouží k přidávání různých tlačítek do aplikace. |
Rám | Funguje jako kontejner widgetů, který obsahuje různé typy widgetů pro návrh organizovaného formuláře. |
Vstup | Používá se k převzetí jednořádkového textu od uživatele. |
Kontrolní tlačítko | Používá se k přidání zaškrtávacích tlačítek, aby bylo možné převzít více vstupů od uživatele z více možností. |
Přepínač | Používá se k přidání přepínacích tlačítek k odebrání jediného vstupu od uživatele z více možností. |
Tlačítko Combobox | Používá se k přidání rozevíracího seznamu k odebrání jediného vstupu od uživatele z více možností. |
Seznam | Používá se k přidání seznamu, aby bylo možné převzít více vstupů od uživatele z více možností. |
Text | Používá se k převzetí víceřádkového textu od uživatele. |
Zpráva | Používá se k zobrazení okna zpráv pro uživatele. |
Posuvník | Slouží k přidání posuvníku do okna pro posouvání okna nahoru a dolů. |
Tlačítko nabídky | Slouží k zobrazení menu uživateli. |
Jídelní lístek | Používá se k zobrazení položek nabídky uživateli. |
PanedWindow | Funguje jako kontejner widgetů, který obsahuje horizontální a vertikální panely. |
Karty | Slouží k přidání okna karty do aplikace. |
Různé Tkinterovy příklady
Použití některých běžných widgetů tkinter je ukázáno v následujících příkladech.
Příklad 1: Vytvoření jednoduché GUI aplikace
Vytvořte soubor Python s následujícím obsahem, který zobrazí dialogové okno ve středu obrazovky s názvem a konkrétní výškou a šířkou:
#Importujte potřebný modul
z importu tkinter *
#Vytvořit objekt pro okno
tkobj = Tk ( )
#Nastavte titulek okna
tkobj.title ( 'Naučte se modul tkinter' )
#Nastavte výšku a šířku okna
tkobj.geometrie ( '300x150' )
# Nastavte polohu zobrazení okna centrálně
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spusťte Tkinter
tkobj.mainloop ( )
Výstup:
Po provedení skriptu se zobrazí následující výstup. Zobrazí se dialogové okno s názvem „Learn tkinter module“:
Příklad 2: Použití štítku a tlačítka
Vytvořte soubor Python pomocí následujícího skriptu, který zobrazí okno s popiskem a dialogové okno:
#Importujte potřebný modulz importu tkinter *
#Vytvořte objekt pro okno
tkobj = Tk ( )
#Nastavte titulek okna
tkobj.title ( 'Naučte se modul tkinter' )
#Nastavte výšku a šířku okna
tkobj.geometrie ( '400x150' )
#Definujte objekt štítku
lbl = Štítek ( tkobj, text = 'Je to jednoduché okno' )
#Přidejte štítek do okna
lbl.pack ( ipadx = 30 , ipady = dvacet )
#Define button object
btn = Tlačítko ( tkobj, text = 'Klikni na mě' )
#Přidat tlačítko do okna s pozicí
btn.pack ( ipadx = 30 , ipady = 10 )
# Nastavte polohu zobrazení okna centrálně
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spusťte Tkinter
tkobj.mainloop ( )
Výstup:
Po provedení skriptu se uprostřed obrazovky objeví okno s popiskem a tlačítkem.
Příklad 3: Nastavte barvu písma a barvu pozadí
Vytvořte soubor Python pomocí následujícího skriptu, který zobrazí okno se štítkem a barevným tlačítkem. Zde se atribut pozadí používá k nastavení barvy pozadí tlačítka a atribut popředí se používá k nastavení barvy písma tlačítka:
#Importujte potřebný modulz importu tkinter *
#Vytvořte objekt pro okno
tkobj = Tk ( )
#Nastavte titulek okna
tkobj.title ( 'Naučte se modul tkinter' )
#Nastavte výšku a šířku okna
tkobj.geometrie ( '400x150' )
#Definujte objekt štítku
lbl = Štítek ( tkobj, text = 'Nastavit barvu pozadí a popředí' )
#Přidejte štítek do okna
lbl.pack ( ipadx = 30 , ipady = dvacet )
#Definujte objekt tlačítka s barvou pozadí a popředí
btn = Tlačítko ( tkobj, text = 'Klikni na mě' , Pozadí = 'modrý' , popředí = 'Červené' )
#Přidat tlačítko do okna s pozicí
btn.pack ( ipadx = 30 , ipady = 8 )
# Nastavte polohu zobrazení okna centrálně
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spusťte Tkinter
tkobj.mainloop ( )
Výstup:
Po spuštění skriptu se zobrazí následující okno:
Příklad 4: Použití rámce
V následujícím skriptu Python se v rámci widgetu rámečku zobrazuje popisek a dvě tlačítka. Vytvořte soubor Python se skriptem pro kontrolu výstupu:
#Importujte potřebný modulz importu tkinter *
#Vytvořte objekt pro okno
tkobj = Tk ( )
#Nastavte titulek okna
tkobj.title ( 'modul tkinter' )
#Nastavte výšku a šířku okna
tkobj.geometrie ( '250x100' )
#Definujte rámové objekty
frm = Rám ( tkobj )
frm.pack ( )
lframe = Rám ( tkobj )
lframe.pack ( boční = VLEVO )
rframe = Rám ( tkobj )
rframe.pack ( boční = SPRÁVNĚ )
#Definujte štítek uvnitř rámu
lbl = Štítek ( frm, text = 'Použití rámu' , fg = 'modrý' )
lbl.pack ( )
#Definujte tlačítka uvnitř rámu
btn1 = Tlačítko ( lframe, text = '' , fg = 'Černá' , bg = 'bílý' )
btn2.pack ( boční = SPRÁVNĚ )
# Nastavte polohu zobrazení okna centrálně
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spusťte Tkinter
tkobj.mainloop ( )
Výstup:
Po spuštění skriptu se zobrazí následující výstup:
Příklad 5: Zpracování události tlačítka
Použití okna se zprávou je znázorněno v následujícím skriptu. Po kliknutí na tlačítko se zobrazí okno se zprávou:
#Importujte potřebné modulyz importu tkinter *
ze schránky importu tkinter
#Vytvořte objekt pro okno
tkobj = Tk ( )
#Nastavte titulek okna
tkobj.title ( 'Naučte se modul tkinter' )
#Nastavte výšku a šířku okna
tkobj.geometrie ( '400x150' )
#Definujte funkci pro zobrazení okna se zprávou
def zobrazení ( ) :
messagebox.showinfo ( 'Informace' , 'Tlačítko bylo stisknuto.' )
#Vytvořte text štítku s barvou, stylem a pozicí písma
Označení ( tkobj, text = 'Desktopová aplikace používající tkinter.' , fg = 'zelená' ) .balíček ( Paddy = 25 )
#Vytvořte tlačítko pomocí ovladače tlačítek
Knoflík ( tkobj, text = 'Zobrazit zprávu' , příkaz = displej ) .balíček ( )
# Nastavte polohu zobrazení okna centrálně
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spusťte Tkinter
tkobj.mainloop ( )
Výstup:
Po spuštění skriptu se zobrazí následující okno:
Po stisknutí tlačítka se zobrazí následující okno se zprávou:
Příklad 6: Vezměte vstup od uživatele
V modulu tkinter je k dispozici několik widgetů, které přebírají vstup od uživatele. Použití nejběžnějších widgetů ukazuje následující skript. Vytvořte soubor Python s následujícím kódem pro kontrolu výstupu:
#Importujte potřebné modulyz importu tkinter *
z tkinter.ttk import Combobox
z tkinter import ttk
importovat tkinter tak jako tk
ze schránky importu tkinter
#Vytvořit objekt tkinter
tkobj = Tk ( )
#Nastavte titulek okna
tkobj.title ( 'Formulář s informacemi o uživateli' )
#Nastavte výšku a šířku okna
tkobj.geometrie ( '550x320' )
#Definujte funkci pro zobrazení hodnot formuláře
def display_values ( ) :
#Přečtěte si jednořádkový text
jméno = 'Název : ' + jmeno_val.get ( ) + ' \n '
#Přečtěte hodnotu vybraného přepínače
-li gender.get ( ) == 1 :
g = 'Mužský'
jiný:
g = 'Ženský'
g = 'Rod : ' + g + ' \n '
#Přečtěte hodnoty vybraných zaškrtávacích políček
hra = ''
-li g1.get ( ) == 1 :
hra = 'Kriket'
-li g2.get ( ) == 1 :
-li hra ! = '' :
hra += ',' + 'Fotbal'
jiný:
hra = 'Fotbal'
-li g3.get ( ) == 1 :
-li hra ! = '' :
hra += ',' + 'Basketball'
jiný:
hra = 'Basketball'
hra = 'Hra:' + hra + ' \n '
#Přečtěte si hodnoty pole se seznamem
země = 'Země:' + countryVal.get ( ) + ' \n '
#Přečtěte si víceřádkový text
adresa = 'Adresa : ' + addr.get ( '1,0' , 'konec' ) + ' \n '
#Sloučit všechny hodnoty převzaté z polí
form_values = jméno + g + hra + země + adresa
#Zobrazte hodnoty v okně zprávy
messagebox.showinfo ( 'Podrobnosti informací o uživateli' , hodnoty_tvaru )
#Vytvořte štítek a pole názvu
Označení ( tkobj, text = 'Název : ' ) .místo ( X = 100 , a = dvacet )
name_val = StringVar ( )
ttk.Vstup ( tkobj, textově proměnná =name_val ) .balíček ( Padx = 220 , Paddy = dvacet )
#Vytvořte štítek a přepínač
Označení ( tkobj, text = 'Rod : ' ) .místo ( X = 100 , a = 60 )
pohlaví = IntVar ( )
pohlaví.set ( 1 )
Přepínač ( tkobj, text = 'Mužský' , variabilní =pohlaví, hodnota = 1 ) .místo ( X = 210 , a = 60 )
Přepínač ( tkobj, text = 'Ženský' , variabilní =pohlaví, hodnota = 2 ) .místo ( X = 290 , a = 60 )
#Vytvořit štítek a zaškrtávací políčko
Označení ( tkobj, text = 'Oblíbená hra:' ) .místo ( X = 100 , a = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
Kontrolní tlačítko ( tkobj, text = 'Kriket' , variabilní =g1 ) .místo ( X = 210 , a = 100 )
Kontrolní tlačítko ( tkobj, text = 'Fotbal' , variabilní =g2 ) .místo ( X = 290 , a = 100 )
Kontrolní tlačítko ( tkobj, text = 'Basketball' , variabilní =g3 ) .místo ( X = 380 , a = 100 )
#Definujte hodnoty n-tic
údaje = ( 'Bangladéš' , 'Japonsko' , 'USA' )
#Vytvořit štítek a pole se seznamem
Označení ( tkobj, text = 'Země:' ) .místo ( X = 100 , a = 140 )
countryVal = StringVar ( )
Combobox ( tkobj, hodnoty =data, textově proměnná =countryVal ) .místo ( X = 220 , a = 140 )
#Vytvořte štítek a textové pole
Označení ( tkobj, text = 'Adresa : ' ) .místo ( X = 100 , a = 180 )
addr = ( tk.Text ( tkobj, výška = 3 , šířka = dvacet ) )
addr.place ( X = 220 , a = 180 )
#Vytvořte tlačítko pomocí ovladače tlačítek
Knoflík ( tkobj, text = 'Předložit' , příkaz =display_values ) .místo ( X = 250 , a = 250 )
#Spusťte Tkinter
tkobj.mainloop ( )
Výstup:
Po spuštění skriptu se zobrazí následující okno:
Vyplňte pole formuláře a stiskněte tlačítko „Odeslat“.
Zobrazí se následující okno se zprávou s odeslanými hodnotami:
Závěr
Metody použití modulu Python tkinter k vytvoření GUI aplikací jsou ukázány v tomto tutoriálu na několika příkladech.