A Python egy sokoldalú programozási nyelv, amely különféle típusú alkalmazások megvalósítására használható. Sokféle modullal rendelkezik a GUI (Graphical User Interface) alapú alkalmazások létrehozásához. A Python tkinter az egyik ilyen. Bármely asztali alkalmazás könnyen megvalósítható a tkinter modul segítségével. Jobb lesz, ha rendelkezik alapszintű Python programozási ismeretekkel, hogy megtanulja a Python tkinter modul használatát. Ebben az oktatóanyagban a Python tkinter modul GUI-alkalmazások létrehozására szolgáló különféle felhasználási módjai láthatók.
Telepítse a Tkinter modult
A tkinter modul alapértelmezés szerint nincs telepítve a Pythonra. Tehát a következő parancsot kell futtatnia a tkinter modul telepítéséhez a Python 3+ verzióban:
$ sudo alkalmas telepítés python3-tk
Különböző Tkinter widgetek
A tkinter modul különféle widgeteket tartalmaz különféle célokra.
Widget neve | Célja |
Címke | A felhasználónak szóló segítő üzenet megjelenítésére szolgál. |
Gomb | Különböző gombok hozzáadására szolgál az alkalmazásban. |
Keret | Úgy működik, mint egy widget-tároló, amely különböző típusú widgeteket tartalmaz egy szervezett űrlap kialakításához. |
Belépés | Egysoros szöveg elvételére szolgál a felhasználótól. |
Ellenőrző gomb | A jelölőnégyzet gombok hozzáadására szolgál, hogy több bemenetet fogadjon el a felhasználótól több lehetőség közül. |
Rádiógomb | Rádiógombok hozzáadására szolgál, hogy egyetlen bevitelt fogadjon el a felhasználótól több lehetőség közül. |
Combobox gomb | Egy legördülő lista hozzáadására szolgál, amely egyetlen bevitelt fogad el a felhasználótól több lehetőség közül. |
ListBox | Listadoboz hozzáadására szolgál, hogy több bemenetet fogadjon el a felhasználótól több lehetőség közül. |
Szöveg | Többsoros szöveg elvételére szolgál a felhasználótól. |
Üzenet | Az üzenetablak megjelenítésére szolgál a felhasználó számára. |
Görgetősáv | Arra használjuk, hogy egy görgetősávot adjunk az ablakhoz az ablak fel-le görgetéséhez. |
Menü gomb | A menü megjelenítésére szolgál a felhasználó számára. |
Menü | A menüelemek megjelenítésére szolgál a felhasználó számára. |
PanedWindow | Úgy működik, mint egy widget-tároló, amely a vízszintes és függőleges ablaktáblákat tartalmazza. |
Tabs | Egy füles ablak hozzáadására szolgál az alkalmazásban. |
Különböző Tkinter példák
Néhány általános tkinter widget használatát a következő példák mutatják be.
1. példa: Hozzon létre egy egyszerű GUI-alkalmazást
Hozzon létre egy Python-fájlt a következő tartalommal, amely egy párbeszédpanelt jelenít meg a képernyő közepén a címmel, valamint az adott magassággal és szélességgel:
#Importálja a szükséges modult
tkinter importból *
#Objektum létrehozása az ablakhoz
tkobj = Tk ( )
#Állítsa be az ablak címét
tkobj.title ( 'A tkinter modul megtanulása' )
#Állítsa be az ablak magasságát és szélességét
tkobj.geometria ( '300x150' )
#Állítsa be az ablak megjelenítési pozícióját középen
tkobj.eval ( 'tk::PlaceWindow . központ' )
#Futtassa a Tkintert
tkobj.mainloop ( )
Kimenet:
A következő kimenet jelenik meg a szkript végrehajtása után. Megjelenik egy párbeszédpanel a „Learn tkinter module” címmel:
2. példa: Címke és gomb használata
Hozzon létre egy Python-fájlt a következő szkripttel, amely egy ablakot és egy párbeszédpanelt jelenít meg:
#Importálja a szükséges modulttkinter importból *
# Hozzon létre egy objektumot az ablakhoz
tkobj = Tk ( )
#Állítsa be az ablak címét
tkobj.title ( 'A tkinter modul megtanulása' )
#Állítsa be az ablak magasságát és szélességét
tkobj.geometria ( '400x150' )
#Címke objektum meghatározása
lbl = Címke ( tkobj, szöveg = 'Ez egy egyszerű ablak' )
#Cimke hozzáadása az ablakhoz
lbl.pack ( ipadx = 30 , ipad = húsz )
#Gombobjektum meghatározása
btn = Gomb ( tkobj, szöveg = 'Kattints ide' )
#Hozzáadás gomb az ablakhoz a pozícióval
btn.pack ( ipadx = 30 , ipad = 10 )
#Állítsa be az ablak megjelenítési pozícióját középen
tkobj.eval ( 'tk::PlaceWindow . központ' )
#Futtassa a Tkintert
tkobj.mainloop ( )
Kimenet:
A szkript végrehajtása után a képernyő közepén megjelenik egy ablak egy címkével és egy gombbal.
3. példa: Állítsa be a betűszínt és a háttérszínt
Hozzon létre egy Python-fájlt a következő szkripttel, amely egy címkével és egy színes gombbal ellátott ablakot jelenít meg. Itt a background attribútum a gomb háttérszínének, az előtér attribútum pedig a gomb betűszínének beállítására szolgál:
#Importálja a szükséges modulttkinter importból *
# Hozzon létre egy objektumot az ablakhoz
tkobj = Tk ( )
#Állítsa be az ablak címét
tkobj.title ( 'A tkinter modul megtanulása' )
#Állítsa be az ablak magasságát és szélességét
tkobj.geometria ( '400x150' )
#Címke objektum meghatározása
lbl = Címke ( tkobj, szöveg = 'Háttér és előtér színének beállítása' )
#Cimke hozzáadása az ablakhoz
lbl.pack ( ipadx = 30 , ipad = húsz )
#Define gombobjektum háttér- és előtérszínnel
btn = Gomb ( tkobj, szöveg = 'Kattints ide' , háttér = 'kék' , előtér = 'piros' )
#Hozzáadás gomb az ablakhoz a pozícióval
btn.pack ( ipadx = 30 , ipad = 8 )
#Állítsa be az ablak megjelenítési pozícióját középen
tkobj.eval ( 'tk::PlaceWindow . központ' )
#Futtassa a Tkintert
tkobj.mainloop ( )
Kimenet:
A szkript végrehajtása után a következő ablak jelenik meg:
4. példa: Keret használata
A következő Python-szkriptben egy címke és két gomb látható a keret widgeten belül. Hozzon létre egy Python-fájlt a szkripttel a kimenet ellenőrzéséhez:
#Importálja a szükséges modulttkinter importból *
# Hozzon létre egy objektumot az ablakhoz
tkobj = Tk ( )
#Állítsa be az ablak címét
tkobj.title ( 'tkinter modul' )
#Állítsa be az ablak magasságát és szélességét
tkobj.geometria ( '250x100' )
#Keretobjektumok meghatározása
frm = Keret ( tkobj )
frm.pack ( )
lframe = Keret ( tkobj )
lframe.pack ( oldal =BAL )
rframe = Keret ( tkobj )
rframe.pack ( oldal = HELYES )
#Címke meghatározása a kereten belül
lbl = Címke ( frm, szöveg = 'A keret használata' , fg = 'kék' )
lbl.pack ( )
#Define gombok a kereten belül
btn1 = Button ( lframe, szöveg = '' , fg = 'fekete' , bg = 'fehér' )
btn2.pack ( oldal = HELYES )
#Állítsa be az ablak megjelenítési pozícióját középen
tkobj.eval ( 'tk::PlaceWindow . központ' )
#Futtassa a Tkintert
tkobj.mainloop ( )
Kimenet:
A következő kimenet jelenik meg a szkript végrehajtása után:
5. példa: Kezelje a gombeseményt
Az üzenetmező használatát a következő szkript mutatja be. Az üzenetablak megjelenik, ha egy gombra kattint:
#Importálja a szükséges modulokattkinter importból *
a tkinter import üzenetboxból
# Hozzon létre egy objektumot az ablakhoz
tkobj = Tk ( )
#Állítsa be az ablak címét
tkobj.title ( 'A tkinter modul megtanulása' )
#Állítsa be az ablak magasságát és szélességét
tkobj.geometria ( '400x150' )
#Határozzon meg egy függvényt az üzenetablak megjelenítéséhez
def kijelző ( ) :
messagebox.showinfo ( 'Információ' , 'A gomb meg van kattintva.' )
#Címkeszöveg létrehozása betűszínnel, stílussal és pozícióval
Címke ( tkobj, szöveg = 'Asztali alkalmazás a tkinter használatával.' , fg = 'zöld' ) .csomag ( Paddy = 25 )
#Hozzon létre egy gombot egy gombkezelővel
Gomb ( tkobj, szöveg = 'Üzenet megjelenítése' , parancs =kijelző ) .csomag ( )
#Állítsa be az ablak megjelenítési pozícióját középen
tkobj.eval ( 'tk::PlaceWindow . központ' )
#Futtassa a Tkintert
tkobj.mainloop ( )
Kimenet:
A szkript végrehajtása után a következő ablak jelenik meg:
A következő üzenetablak jelenik meg a gomb megnyomása után:
6. példa: Bemenet fogadása a felhasználótól
A tkinter modulban több widget is rendelkezésre áll, amelyek a felhasználótól érkező bevitelt fogadják. A leggyakoribb widgetek felhasználását a következő szkript mutatja be. Hozzon létre egy Python-fájlt a következő kóddal a kimenet ellenőrzéséhez:
#Importálja a szükséges modulokattkinter importból *
a tkinter.ttk import Comboboxból
tkinter importból ttk
import tkinter mint tk
a tkinter import üzenetboxból
#Tkinter objektum létrehozása
tkobj = Tk ( )
#Állítsa be az ablak címét
tkobj.title ( 'Felhasználói információs űrlap' )
#Állítsa be az ablak magasságát és szélességét
tkobj.geometria ( '550x320' )
#Határozzon meg egy függvényt az űrlapértékek megjelenítéséhez
def display_values ( ) :
#Egysoros szöveg olvasása
név = 'Név:' + name_val.get ( ) + ' \n '
#Olvassa be a kiválasztott választógomb értékét
ha gender.get ( ) == 1 :
g = 'Férfi'
más:
g = 'Női'
g = 'Nem:' + g + ' \n '
#Olvassa el a kiválasztott jelölőnégyzet értékeit
játék = ''
ha g1.get ( ) == 1 :
játék = 'Krikett'
ha g2.get ( ) == 1 :
ha játszma, meccs ! = '' :
játék += ', ' + 'Futball'
más:
játék = 'Futball'
ha g3.get ( ) == 1 :
ha játszma, meccs ! = '' :
játék += ', ' + 'Kosárlabda'
más:
játék = 'Kosárlabda'
játék = 'Játszma, meccs : ' + játék + ' \n '
#Olvassa el a kombinált mező értékeit
ország = 'Ország : ' + országVal.get ( ) + ' \n '
#Olvassa el a többsoros szöveget
cím = 'Cím : ' + addr.get ( '1.0' , 'vége' ) + ' \n '
#A mezők által felvett összes érték egyesítése
form_values = név + g + játék + ország + cím
#Jelenítse meg az értékeket az üzenetmezőben
messagebox.showinfo ( 'Felhasználói információ részletei' , form_values )
#Hozzon létre egy címkét és a névmezőt
Címke ( tkobj, szöveg = 'Név:' ) .hely ( x = 100 , és = húsz )
name_val = StringVar ( )
ttk.Belépés ( tkobj, szövegváltozó =név_érték ) .csomag ( Padx = 220 , Paddy = húsz )
# Hozzon létre egy címkét és a választógombot
Címke ( tkobj, szöveg = 'Nem:' ) .hely ( x = 100 , és = 60 )
gender = IntVar ( )
gender.set ( 1 )
Rádiógomb ( tkobj, szöveg = 'Férfi' , változó =nem, érték = 1 ) .hely ( x = 210 , és = 60 )
Rádiógomb ( tkobj, szöveg = 'Női' , változó =nem, érték = 2 ) .hely ( x = 290 , és = 60 )
# Hozzon létre egy címkét és jelölőnégyzet gombot
Címke ( tkobj, szöveg = 'Kedvenc játék:' ) .hely ( x = 100 , és = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
Ellenőrző gomb ( tkobj, szöveg = 'Krikett' , változó =g1 ) .hely ( x = 210 , és = 100 )
Ellenőrző gomb ( tkobj, szöveg = 'Futball' , változó =g2 ) .hely ( x = 290 , és = 100 )
Ellenőrző gomb ( tkobj, szöveg = 'Kosárlabda' , változó =g3 ) .hely ( x = 380 , és = 100 )
#Tuple értékek meghatározása
adatok = ( 'Banglades' , 'Japán' , 'EGYESÜLT ÁLLAMOK' )
#Címke és kombinált doboz létrehozása
Címke ( tkobj, szöveg = 'Ország : ' ) .hely ( x = 100 , és = 140 )
countryVal = StringVar ( )
Combobox ( tkobj, értékeket =adat, szövegváltozó =országVal ) .hely ( x = 220 , és = 140 )
#Címke és szövegmező létrehozása
Címke ( tkobj, szöveg = 'Cím : ' ) .hely ( x = 100 , és = 180 )
addr = ( tk.Szöveg ( tkobj, magasság = 3 , szélesség = húsz ) )
addr.place ( x = 220 , és = 180 )
#Hozzon létre egy gombot egy gombkezelővel
Gomb ( tkobj, szöveg = 'Beküldés' , parancs =értékek megjelenítése ) .hely ( x = 250 , és = 250 )
#Futtassa a Tkintert
tkobj.mainloop ( )
Kimenet:
A szkript végrehajtása után a következő ablak jelenik meg:
Töltse ki az űrlap mezőit, és nyomja meg a „Küldés” gombot.
A következő üzenetablak jelenik meg a beküldött értékekkel:
Következtetés
A Python tkinter modul GUI-alkalmazások létrehozására szolgáló módszerei több példán keresztül is bemutatásra kerülnek ebben az oktatóanyagban.