Python je všestranný programovací jazyk, ktorý možno použiť na implementáciu rôznych typov aplikácií. Má mnoho typov modulov na vytváranie aplikácií založených na GUI (Graphical User Interface). Python tkinter je jedným z nich. Pomocou modulu tkinter je možné jednoducho implementovať akúkoľvek desktopovú aplikáciu. Bude lepšie, ak budete mať základné znalosti programovania v Pythone, aby ste sa naučili používať modul Python tkinter. V tomto návode sú uvedené rôzne použitia modulu Python tkinter na vytváranie aplikácií GUI.
Nainštalujte modul Tkinter
Modul tkinter nie je v Pythone štandardne nainštalovaný. Ak chcete nainštalovať modul tkinter vo verzii Python 3+, musíte spustiť nasledujúci príkaz:
$ sudo apt Inštalácia python3-tk
Rôzne widgety Tkinter
Modul tkinter obsahuje rôzne widgety na rôzne účely.
Názov miniaplikácie | Účel |
Označenie | Používa sa na zobrazenie pomocnej správy pre používateľa. |
Tlačidlo | Používa sa na pridávanie rôznych tlačidiel v aplikácii. |
Rám | Funguje to ako kontajner miniaplikácií, ktorý obsahuje rôzne typy miniaplikácií na návrh organizovaného formulára. |
Vstup | Používa sa na prevzatie jednoriadkového textu od používateľa. |
Kontrolné tlačidlo | Používa sa na pridanie tlačidiel začiarkavacích políčok na získanie viacerých vstupov od používateľa z viacerých možností. |
Tlačítko na Rádiu | Používa sa na pridanie prepínačov na získanie jedného vstupu od používateľa z viacerých možností. |
Tlačidlo Combobox | Používa sa na pridanie rozbaľovacieho zoznamu na získanie jedného vstupu od používateľa z viacerých možností. |
ListBox | Používa sa na pridanie zoznamu, aby sa od používateľa odobrali viaceré vstupy z viacerých možností. |
Text | Používa sa na prevzatie viacriadkového textu od používateľa. |
Správa | Používa sa na zobrazenie okna správ pre používateľa. |
Posuvník | Používa sa na pridanie posúvača do okna na posúvanie okna nahor a nadol. |
Tlačidlo ponuky | Používa sa na zobrazenie menu používateľovi. |
Ponuka | Používa sa na zobrazenie položiek ponuky používateľovi. |
PanedWindow | Funguje ako kontajner miniaplikácií, ktorý obsahuje horizontálne a vertikálne panely. |
Karty | Používa sa na pridanie okna s kartami v aplikácii. |
Rôzne príklady Tkinter
Použitie niektorých bežných widgetov tkinter je znázornené v nasledujúcich príkladoch.
Príklad 1: Vytvorte jednoduchú aplikáciu GUI
Vytvorte súbor Python s nasledujúcim obsahom, ktorý zobrazí dialógové okno v strede obrazovky s názvom a konkrétnou výškou a šírkou:
#Importujte potrebný modul
z importu tkinter *
#Vytvorte objekt pre okno
tkobj = Tk ( )
#Nastavte názov okna
tkobj.title ( 'Naučte sa modul tkinter' )
#Nastavte výšku a šírku okna
tkobj.geometria ( '300 x 150' )
# Polohu zobrazenia okna nastavte centrálne
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spustite Tkinter
tkobj.mainloop ( )
Výkon:
Po vykonaní skriptu sa zobrazí nasledujúci výstup. Zobrazí sa dialógové okno s názvom „Learn tkinter module“:
Príklad 2: Použitie štítka a tlačidla
Vytvorte súbor Python pomocou nasledujúceho skriptu, ktorý zobrazí okno s menovkou a dialógové okno:
#Importujte potrebný modulz importu tkinter *
#Vytvorte objekt pre okno
tkobj = Tk ( )
#Nastavte názov okna
tkobj.title ( 'Naučte sa modul tkinter' )
#Nastavte výšku a šírku okna
tkobj.geometria ( '400 x 150' )
#Definujte objekt označenia
lbl = Označenie ( tkobj, text = 'Je to jednoduché okno' )
#Pridajte štítok do okna
lbl.pack ( ipadx = 30 , ipady = dvadsať )
#Definovať objekt tlačidla
btn = tlačidlo ( tkobj, text = 'Klikni na mňa' )
#Pridať tlačidlo do okna s pozíciou
btn.pack ( ipadx = 30 , ipady = 10 )
# Polohu zobrazenia okna nastavte centrálne
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spustite Tkinter
tkobj.mainloop ( )
Výkon:
Po vykonaní skriptu sa v strede obrazovky zobrazí okno s menovkou a tlačidlom.
Príklad 3: Nastavte farbu písma a farbu pozadia
Vytvorte súbor Python pomocou nasledujúceho skriptu, ktorý zobrazí okno s menovkou a farebným tlačidlom. Atribút pozadia sa tu používa na nastavenie farby pozadia tlačidla a atribút popredia sa používa na nastavenie farby písma tlačidla:
#Importujte potrebný modulz importu tkinter *
#Vytvorte objekt pre okno
tkobj = Tk ( )
#Nastavte názov okna
tkobj.title ( 'Naučte sa modul tkinter' )
#Nastavte výšku a šírku okna
tkobj.geometria ( '400 x 150' )
#Definujte objekt označenia
lbl = Označenie ( tkobj, text = 'Nastaviť farbu pozadia a popredia' )
#Pridajte štítok do okna
lbl.pack ( ipadx = 30 , ipady = dvadsať )
#Definujte objekt tlačidla s farbou pozadia a popredia
btn = tlačidlo ( tkobj, text = 'Klikni na mňa' , pozadie = 'Modrá' , popredia = 'červená' )
#Pridať tlačidlo do okna s pozíciou
btn.pack ( ipadx = 30 , ipady = 8 )
# Polohu zobrazenia okna nastavte centrálne
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spustite Tkinter
tkobj.mainloop ( )
Výkon:
Po spustení skriptu sa zobrazí nasledujúce okno:
Príklad 4: Použitie rámca
V nasledujúcom skripte Python sa v miniaplikácii rámca zobrazuje označenie a dve tlačidlá. Vytvorte súbor Python so skriptom na kontrolu výstupu:
#Importujte potrebný modulz importu tkinter *
#Vytvorte objekt pre okno
tkobj = Tk ( )
#Nastavte názov okna
tkobj.title ( 'tkinter modul' )
#Nastavte výšku a šírku okna
tkobj.geometria ( '250 x 100' )
#Definujte rámové objekty
frm = Rám ( tkobj )
frm.pack ( )
lframe = Rám ( tkobj )
lframe.pack ( strane = Vľavo )
rframe = Rám ( tkobj )
rframe.pack ( strane = SPRÁVNE )
#Definujte štítok vo vnútri rámu
lbl = Označenie ( frm, text = 'Použitie rámu' , fg = 'Modrá' )
lbl.pack ( )
#Definujte tlačidlá vo vnútri rámu
btn1 = tlačidlo ( lframe, text = '' , fg = 'čierna' , bg = 'biely' )
btn2.pack ( strane = SPRÁVNE )
# Polohu zobrazenia okna nastavte centrálne
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spustite Tkinter
tkobj.mainloop ( )
Výkon:
Po vykonaní skriptu sa zobrazí nasledujúci výstup:
Príklad 5: Spracovanie udalosti tlačidla
Použitie okna správ je zobrazené v nasledujúcom skripte. Po kliknutí na tlačidlo sa zobrazí okno so správou:
#Importujte potrebné modulyz importu tkinter *
zo správy importu tkinter
#Vytvorte objekt pre okno
tkobj = Tk ( )
#Nastavte názov okna
tkobj.title ( 'Naučte sa modul tkinter' )
#Nastavte výšku a šírku okna
tkobj.geometria ( '400 x 150' )
#Definujte funkciu na zobrazenie okna so správou
def displej ( ) :
messagebox.showinfo ( 'informácie' , 'Kliknutie na tlačidlo.' )
#Vytvorte text štítku s farbou písma, štýlom a polohou
Označenie ( tkobj, text = 'Počítačová aplikácia využívajúca tkinter.' , fg = 'zelená' ) .balenie ( Paddy = 25 )
#Vytvorte tlačidlo pomocou ovládača tlačidiel
Tlačidlo ( tkobj, text = 'Zobraziť správu' , príkaz = displej ) .balenie ( )
# Polohu zobrazenia okna nastavte centrálne
tkobj.eval ( 'tk::PlaceWindow . centrum' )
#Spustite Tkinter
tkobj.mainloop ( )
Výkon:
Po spustení skriptu sa zobrazí nasledujúce okno:
Po stlačení tlačidla sa zobrazí nasledujúca správa:
Príklad 6: Prijmite vstup od používateľa
V module tkinter je k dispozícii viacero widgetov, ktoré preberajú vstup od používateľa. Použitie najbežnejších widgetov je znázornené v nasledujúcom skripte. Vytvorte súbor Python s nasledujúcim kódom na kontrolu výstupu:
#Importujte potrebné modulyz importu tkinter *
z tkinter.ttk importovať Combobox
z tkinter import ttk
importovať tkinter ako tk
zo správy importu tkinter
#Vytvorte objekt tkinter
tkobj = Tk ( )
#Nastavte názov okna
tkobj.title ( 'Formulár s informáciami o používateľovi' )
#Nastavte výšku a šírku okna
tkobj.geometria ( 550 x 320 )
#Definujte funkciu na zobrazenie hodnôt formulára
def display_values ( ) :
#Prečítajte si jednoriadkový text
meno = 'Názov : ' + meno_val.get ( ) + ' \n '
#Prečítajte vybranú hodnotu prepínača
ak gender.get ( ) == 1 :
g = 'Muž'
inak:
g = 'Žena'
g = 'Rod : ' + g + ' \n '
#Prečítajte si hodnoty vybratých začiarkavacích políčok
hra = ''
ak g1.get ( ) == 1 :
hra = 'kriket'
ak g2.get ( ) == 1 :
ak hra ! = '' :
hra += ',' + 'Futbal'
inak:
hra = 'Futbal'
ak g3.get ( ) == 1 :
ak hra ! = '' :
hra += ',' + 'basketbal'
inak:
hra = 'basketbal'
hra = 'Hra : ' + hra + ' \n '
#Prečítajte si hodnoty v rozbaľovacom poli
krajina = 'Krajina : ' + countryVal.get ( ) + ' \n '
#Prečítajte si viacriadkový text
adresa = 'Adresa:' + adr.získať ( '1,0' , 'koniec' ) + ' \n '
#Zlúčiť všetky hodnoty prijaté v poliach
form_values = meno + g + hra + krajina + adresa
#Zobrazte hodnoty v poli správy
messagebox.showinfo ( 'Podrobnosti informácií o používateľovi' , hodnoty_form )
#Vytvorte štítok a pole s názvom
Označenie ( tkobj, text = 'Názov : ' ) .miesto ( X = 100 , a = dvadsať )
name_val = StringVar ( )
ttk.Vstup ( tkobj, textová premenná =name_val ) .balenie ( Padx = 220 , Paddy = dvadsať )
#Vytvorte štítok a prepínač
Označenie ( tkobj, text = 'Rod : ' ) .miesto ( X = 100 , a = 60 )
pohlavie = IntVar ( )
pohlavie.nastaviť ( 1 )
Tlačítko na Rádiu ( tkobj, text = 'Muž' , premenlivý =pohlavie, hodnotu = 1 ) .miesto ( X = 210 , a = 60 )
Tlačítko na Rádiu ( tkobj, text = 'Žena' , premenlivý =pohlavie, hodnotu = 2 ) .miesto ( X = 290 , a = 60 )
# Vytvorte štítok a tlačidlo začiarknutia
Označenie ( tkobj, text = 'Obľúbená hra:' ) .miesto ( X = 100 , a = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
Kontrolné tlačidlo ( tkobj, text = 'kriket' , premenlivý =g1 ) .miesto ( X = 210 , a = 100 )
Kontrolné tlačidlo ( tkobj, text = 'Futbal' , premenlivý =g2 ) .miesto ( X = 290 , a = 100 )
Kontrolné tlačidlo ( tkobj, text = 'basketbal' , premenlivý =g3 ) .miesto ( X = 380 , a = 100 )
#Definujte hodnoty n-tice
údaje = ( 'Bangladéš' , 'Japonsko' , 'USA' )
#Vytvorte štítok a pole so zoznamom
Označenie ( tkobj, text = 'Krajina : ' ) .miesto ( X = 100 , a = 140 )
countryVal = StringVar ( )
Combobox ( tkobj, hodnoty =údaje, textová premenná =countryVal ) .miesto ( X = 220 , a = 140 )
#Vytvorte štítok a textové pole
Označenie ( tkobj, text = 'Adresa:' ) .miesto ( X = 100 , a = 180 )
addr = ( tk.Text ( tkobj, výška = 3 , šírka = dvadsať ) )
addr.place ( X = 220 , a = 180 )
#Vytvorte tlačidlo pomocou ovládača tlačidiel
Tlačidlo ( tkobj, text = 'Predložiť' , príkaz =display_values ) .miesto ( X = 250 , a = 250 )
#Spustite Tkinter
tkobj.mainloop ( )
Výkon:
Po spustení skriptu sa zobrazí nasledujúce okno:
Vyplňte polia formulára a stlačte tlačidlo „Odoslať“.
Zobrazí sa nasledujúce okno so správou s odoslanými hodnotami:
Záver
Metódy použitia modulu Python tkinter na vytváranie GUI aplikácií sú uvedené v tomto návode na viacerých príkladoch.