Příklady Python Tkinter

Priklady Python Tkinter



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ý modul
z 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ý modul
z 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ý modul
z 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é moduly
z 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é moduly
z 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.