Python Tkinter-voorbeelden

Python Tkinter Voorbeelden



Python is een veelzijdige programmeertaal waarmee verschillende soorten applicaties kunnen worden geïmplementeerd. Het heeft vele soorten modules om op GUI (Graphical User Interface) gebaseerde applicaties te creëren. Python-tkinter is er een van. Elke desktopapplicatie kan eenvoudig worden geïmplementeerd met behulp van de tkinter-module. Het is beter als je een basiskennis hebt van Python-programmeren om het gebruik van de Python tkinter-module te leren. In deze tutorial worden verschillende toepassingen van de Python tkinter-module getoond om de GUI-applicaties te maken.

Installeer de Tkinter-module

De tkinter-module is standaard niet op Python geïnstalleerd. U moet dus de volgende opdracht uitvoeren om de tkinter-module in de Python 3+-versie te installeren:







$ sudo geschikt installeren python3-tk



Verschillende Tkinter-widgets

De tkinter-module bevat verschillende widgets voor verschillende doeleinden.







Widgetnaam Doel
Etiket Het wordt gebruikt om het helpende bericht voor de gebruiker weer te geven.
Knop Het wordt gebruikt om verschillende knoppen in de applicatie toe te voegen.
Kader Het werkt als een widgetcontainer die verschillende soorten widgets bevat om een ​​georganiseerd formulier te ontwerpen.
Binnenkomst Het wordt gebruikt om een ​​tekst van één regel van de gebruiker over te nemen.
Controleknop Het wordt gebruikt om de selectievakjes toe te voegen om meerdere invoer van de gebruiker uit meerdere opties te verkrijgen.
Radio knop Het wordt gebruikt om keuzerondjes toe te voegen om een ​​enkele invoer van de gebruiker uit meerdere opties te verkrijgen.
Combobox-knop Het wordt gebruikt om een ​​vervolgkeuzelijst toe te voegen om één enkele invoer van de gebruiker uit meerdere opties te halen.
Keuzelijst Het wordt gebruikt om een ​​keuzelijst toe te voegen om meerdere invoer van de gebruiker uit meerdere opties te halen.
Tekst Het wordt gebruikt om een ​​tekst van meerdere regels van de gebruiker over te nemen.
Bericht Het wordt gebruikt om het berichtenvenster voor de gebruiker weer te geven.
Schuifbalk Het wordt gebruikt om een ​​schuifbalk aan het venster toe te voegen om het venster omhoog en omlaag te scrollen.
Menuknop Het wordt gebruikt om het menu aan de gebruiker weer te geven.
Menu Het wordt gebruikt om de menu-items aan de gebruiker weer te geven.
Paneelvenster Het werkt als een widgetcontainer die de horizontale en verticale panelen bevat.
Tabbladen Het wordt gebruikt om een ​​tabbladvenster in de applicatie toe te voegen.

Verschillende Tkinter-voorbeelden

Het gebruik van enkele veelgebruikte tkinter-widgets wordt in de volgende voorbeelden getoond.

Voorbeeld 1: Maak een eenvoudige GUI-toepassing

Maak een Python-bestand met de volgende inhoud, waarin een dialoogvenster in het midden van het scherm wordt weergegeven met een titel en de specifieke hoogte en breedte:



#Importeer de benodigde module
van tkinter-import *

#Maak een object voor het venster
tkobj = Tk ( )

#Stel de titel van het venster in
tkobj.titel ( 'Leer tkinter-module' )

#Stel de hoogte en breedte van het venster in
tkobj.geometry ( '300x150' )

#Stel de weergavepositie van het venster centraal in
tkobj.eval ( 'tk::PlaceWindow . centrum' )

#Voer de Tkinter uit
tkobj.mainloop ( )

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van het script. Er wordt een dialoogvenster weergegeven met de titel “Learn tkinter module”:

Voorbeeld 2: Gebruik van label en knop

Maak een Python-bestand met het volgende script dat een venster met een label en een dialoogvenster weergeeft:

#Importeer de benodigde module
van tkinter-import *

#Maak een object voor het venster
tkobj = Tk ( )

#Stel de titel van het venster in
tkobj.titel ( 'Leer tkinter-module' )

#Stel de hoogte en breedte van het venster in
tkobj.geometry ( '400x150' )

#Definieer labelobject
lbl = Etiket ( tkobj, tekst = 'Het is een eenvoudig venster' )
#Label aan het venster toevoegen
lbl.pack ( ipadx = 30 , iPads = twintig )

#Definieer knopobject
btn = Knop ( tkobj, tekst = 'Klik hier' )
#Knop toevoegen aan het venster met de positie
btn.pack ( ipadx = 30 , iPads = 10 )

#Stel de weergavepositie van het venster centraal in
tkobj.eval ( 'tk::PlaceWindow . centrum' )

#Voer de Tkinter uit
tkobj.mainloop ( )

Uitgang:

Na het uitvoeren van het script verschijnt er een venster met een label en een knop in het midden van het scherm.

Voorbeeld 3: Stel de tekstkleur en achtergrondkleur in

Maak een Python-bestand met het volgende script dat een venster weergeeft met een label en een kleurrijke knop. Hier wordt het achtergrondattribuut gebruikt om de achtergrondkleur van de knop in te stellen en het voorgrondattribuut om de tekstkleur van de knop in te stellen:

#Importeer de benodigde module
van tkinter-import *

#Maak een object voor het venster
tkobj = Tk ( )

#Stel de titel van het venster in
tkobj.titel ( 'Leer tkinter-module' )

#Stel de hoogte en breedte van het venster in
tkobj.geometry ( '400x150' )

#Definieer labelobject
lbl = Etiket ( tkobj, tekst = 'Achtergrond- en voorgrondkleur instellen' )
#Label aan het venster toevoegen
lbl.pack ( ipadx = 30 , iPads = twintig )

#Definieer het knopobject met achtergrond- en voorgrondkleur
btn = Knop ( tkobj, tekst = 'Klik hier' , achtergrond = 'blauw' , voorgrond = 'rood' )
#Knop toevoegen aan het venster met de positie
btn.pack ( ipadx = 30 , iPads = 8 )

#Stel de weergavepositie van het venster centraal in
tkobj.eval ( 'tk::PlaceWindow . centrum' )

#Voer de Tkinter uit
tkobj.mainloop ( )

Uitgang:

Na het uitvoeren van het script verschijnt het volgende venster:

Voorbeeld 4: Gebruik van frame

In het volgende Python-script worden een label en twee knoppen weergegeven binnen een framewidget. Maak een Python-bestand met het script om de uitvoer te controleren:

#Importeer de benodigde module
van tkinter-import *

#Maak een object voor het venster
tkobj = Tk ( )

#Stel de titel van het venster in
tkobj.titel ( 'tkinter-module' )

#Stel de hoogte en breedte van het venster in
tkobj.geometry ( '250x100' )

#Definieer frameobjecten
frm = Kader ( tkobj )
frm.pack ( )
lframe = Frame ( tkobj )
lframe.pack ( kant =LINKS )
rframe = Kader ( tkobj )
rframe.pack ( kant = RECHTS )

#Definieer een label binnen het frame
lbl = Etiket ( vanaf, tekst = 'Gebruik van frame' , fg = 'blauw' )
lbl.pack ( )

#Definieer knoppen binnen het frame
btn1 = Knop ( frame, tekst = '' , fg = 'zwart' , bg = 'wit' )
btn2.pack ( kant = RECHTS )

#Stel de weergavepositie van het venster centraal in
tkobj.eval ( 'tk::PlaceWindow . centrum' )

#Voer de Tkinter uit
tkobj.mainloop ( )

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van het script:

Voorbeeld 5: Behandel de knopgebeurtenis

Het gebruik van het berichtenvenster wordt weergegeven in het volgende script. Het berichtvenster wordt weergegeven wanneer op een knop wordt geklikt:

#Importeer benodigde modules
van tkinter-import *
van tkinter import berichtenbox

#Maak een object voor het venster
tkobj = Tk ( )

#Stel de titel van het venster in
tkobj.titel ( 'Leer tkinter-module' )

#Stel de hoogte en breedte van het venster in
tkobj.geometry ( '400x150' )

#Definieer een functie om een ​​berichtenvenster weer te geven
zeker weergeven ( ) :
messagebox.showinfo ( 'Informatie' , 'Er is op de knop geklikt.' )

#Maak labeltekst met letterkleur, stijl en positie
Etiket ( tkobj, tekst = 'Desktoptoepassing die tkinter gebruikt.' , fg = 'groente' ) .pak ( Padie = 25 )

#Maak een knop met een knophandler
Knop ( tkobj, tekst = 'Toon bericht' , commando = weergeven ) .pak ( )

#Stel de weergavepositie van het venster centraal in
tkobj.eval ( 'tk::PlaceWindow . centrum' )

#Voer de Tkinter uit
tkobj.mainloop ( )

Uitgang:

Na het uitvoeren van het script verschijnt het volgende venster:

Na het indrukken van de knop verschijnt het volgende berichtvenster:

Voorbeeld 6: Neem een ​​invoer van de gebruiker

Er zijn meerdere widgets beschikbaar in de tkinter-module om input van de gebruiker te ontvangen. Het gebruik van de meest voorkomende widgets wordt weergegeven in het volgende script. Maak een Python-bestand met de volgende code om de uitvoer te controleren:

#Importeer benodigde modules
van tkinter-import *
van tkinter.ttk importeer Combobox
van tkinter import ttk
importeer tkinter als tk
van tkinter import berichtenbox

#Maak een tkinter-object
tkobj = Tk ( )

#Stel de titel van het venster in
tkobj.titel ( 'Gebruikersinformatieformulier' )

#Stel de hoogte en breedte van het venster in
tkobj.geometry ( '550x320' )

#Definieer een functie om de formulierwaarden weer te geven
def weergave_waarden ( ) :
#Lees tekst van één regel
naam = 'Naam : ' + naam_val.get ( ) + ' \N '
#Lees de geselecteerde keuzerondjewaarde
als geslacht.krijg ( ) == 1 :
g = 'Mannelijk'
anders:
g = 'Vrouwelijk'
g = 'Geslacht : ' +g+ ' \N '

#Lees de geselecteerde selectievakjewaarden
spel = ''
als g1.get ( ) == 1 :
spel = 'Krekel'
als g2.get ( ) == 1 :
als spel ! = '' :
spel += ', ' + 'Voetbal'
anders:
spel = 'Voetbal'
als g3.get ( ) == 1 :
als spel ! = '' :
spel += ', ' + 'Basketbal'
anders:
spel = 'Basketbal'
spel = 'Spel : ' + spel + ' \N '

#Lees de combobox-waarden
land = 'Land : ' + countryVal.get ( ) + ' \N '
#Lees de tekst met meerdere regels
adres = 'Adres : ' + adres.get ( '1,0' , 'einde' ) + ' \N '
#Voeg alle waarden van de velden samen
form_values ​​= naam + g + spel + land + adres
#Geef de waarden weer in het berichtvenster
messagebox.showinfo ( 'Gebruikersinformatiedetails' , vorm_waarden )


#Maak een label en het naamveld
Etiket ( tkobj, tekst = 'Naam : ' ) .plaats ( X = 100 , En = twintig )
naam_val = StringVar ( )
ttk.Invoer ( tkobj, tekstvariabele =naam_val ) .pak ( Padx = 220 , Padie = twintig )

#Maak een label en het keuzerondje
Etiket ( tkobj, tekst = 'Geslacht : ' ) .plaats ( X = 100 , En = 60 )
geslacht = IntVar ( )
geslacht.set ( 1 )
Radio knop ( tkobj, tekst = 'Mannelijk' , variabel =geslacht, waarde = 1 ) .plaats ( X = 210 , En = 60 )
Radio knop ( tkobj, tekst = 'Vrouwelijk' , variabel =geslacht, waarde = 2 ) .plaats ( X = 290 , En = 60 )

#Maak een label en selectievakje aan
Etiket ( tkobj, tekst = 'Favoriete spel : ' ) .plaats ( X = 100 , En = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
Controleknop ( tkobj, tekst = 'Krekel' , variabel =g1 ) .plaats ( X = 210 , En = 100 )
Controleknop ( tkobj, tekst = 'Voetbal' , variabel =g2 ) .plaats ( X = 290 , En = 100 )
Controleknop ( tkobj, tekst = 'Basketbal' , variabel =g3 ) .plaats ( X = 380 , En = 100 )

#Definieer tupelwaarden
gegevens = ( 'Bangladesh' , 'Japan' , 'VERENIGDE STATEN VAN AMERIKA' )
#Maak een label en combobox
Etiket ( tkobj, tekst = 'Land : ' ) .plaats ( X = 100 , En = 140 )
countryVal = StringVar ( )
Combobox ( tkobj, waarden =gegevens, tekstvariabele =landVal ) .plaats ( X = 220 , En = 140 )

#Maak een label en tekstveld
Etiket ( tkobj, tekst = 'Adres : ' ) .plaats ( X = 100 , En = 180 )
addr = ( tk.Tekst ( tkobj, hoogte = 3 , breedte = twintig ) )
adres.plaats ( X = 220 , En = 180 )

#Maak een knop met een knophandler
Knop ( tkobj, tekst = 'Indienen' , commando =weergave_waarden ) .plaats ( X = 250 , En = 250 )

#Voer de Tkinter uit
tkobj.mainloop ( )

Uitgang:

Na het uitvoeren van het script verschijnt het volgende venster:

Vul de velden van het formulier in en druk op de knop “Verzenden”.

Het volgende berichtvenster met de ingediende waarden verschijnt:

Conclusie

De methoden voor het gebruik van de Python tkinter-module om de GUI-applicaties te maken, worden in deze tutorial aan de hand van meerdere voorbeelden getoond.