Python biedt meerdere opties voor het ontwikkelen van GUI (Graphical User Interface). Van alle GUI-methoden is tkinter de meest gebruikte methode. Het is een standaard Python-interface voor de Tk GUI-toolkit die bij Python wordt geleverd. Python Tkinter is de snelste en gemakkelijkste manier om GUI-applicaties te maken. Het maken van een GUI met Tkinter is een gemakkelijke taak.
Inhoudsopgave
- Maak de eerste Tkinter GUI-applicatie
- Tkinter-widget
- Kleur- en lettertypeoptie in Tkinter
- Geometriebeheer
Om een Tkinter Python-app te maken, volgt u deze basisstappen:
- Importeer de tkinter-module : Dit gebeurt op dezelfde manier als het importeren van elke andere module Python . Merk op dat in Python 2.x de module ‘Tkinter’ heet, terwijl deze in Python 3.x ‘tkinter’ heet.
- Maak het hoofdvenster (container) : Het hoofdvenster fungeert als container voor alle GUI-elementen die u later toevoegt.
- Voeg widgets toe aan het hoofdvenster : u kunt een willekeurig aantal widgets, zoals knoppen, labels, invoervelden, enz., aan het hoofdvenster toevoegen om de interface naar wens te ontwerpen.
- Pas gebeurtenistriggers toe op de widgets : u kunt gebeurtenistriggers aan de widgets koppelen om te definiëren hoe deze reageren op gebruikersinteracties.
Maak de eerste Tkinter GUI-applicatie
Er worden twee hoofdmethoden gebruikt die de gebruiker moet onthouden bij het maken van de Python-applicatie met GUI.
hoe je een array in Java kunt retourneren
Tk()
Om een hoofdvenster te maken biedt tkinter een methode ‘Tk(screenName=None, baseName=None, className=’Tk’, useTk=1)’. Om de naam van het venster te wijzigen, kunt u de className wijzigen in de gewenste naam. De basiscode die wordt gebruikt om het hoofdvenster van de applicatie te maken is:
Hoofdlus()
Er is een methode bekend onder de naam mainloop() die wordt gebruikt wanneer uw applicatie klaar is om te worden uitgevoerd. mainloop() is een oneindige lus die wordt gebruikt om de applicatie uit te voeren, te wachten tot er een gebeurtenis plaatsvindt en de gebeurtenis te verwerken zolang het venster niet gesloten is.
Voorbeeld
Python3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Uitvoer
Tkinter-widget
Er zijn een aantal widgets die u in uw tkinter-applicatie kunt plaatsen. Enkele van de belangrijkste widgets worden hieronder uitgelegd:
1. Etiket
Het verwijst naar het weergavevak waarin u elke tekst of afbeelding kunt plaatsen die op elk moment kan worden bijgewerkt volgens de code. De algemene syntaxis is:
w=Label(master, option=value) master is the parameter used to represent the parent window.>Python3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>
Uitvoer
2. Knop
Om een knop toe te voegen aan uw applicatie wordt deze widget gebruikt. De algemene syntaxis is:
w=Button(master, option=value)>
master is de parameter die wordt gebruikt om het bovenliggende venster weer te geven. Er zijn een aantal opties die worden gebruikt om het formaat van de knoppen te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's.Python3>
>
>
import tkinter as tk r = tk.Tk() r.title('Counting Seconds') button = tk.Button(r, text='Stop', width=25, command=r.destroy) button.pack() r.mainloop()>
Uitvoer

3. Binnenkomst
Het wordt gebruikt om de tekstinvoer van één regel van de gebruiker in te voeren. Voor tekstinvoer van meerdere regels wordt de Tekstwidget gebruikt. De algemene syntaxis is:
w=Entry(master, option=value)>
master is de parameter die wordt gebruikt om het bovenliggende venster weer te geven. Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * master = Tk() Label(master, text='First Name').grid(row=0) Label(master, text='Last Name').grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) mainloop()>
Uitvoer
poep

4. Controleknop
Om een willekeurig aantal opties te selecteren door een aantal opties aan een gebruiker weer te geven als schakelknoppen. De algemene syntaxis is:
w = CheckButton(master, option=value)>
Er zijn een aantal opties die worden gebruikt om het formaat van deze widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W) mainloop()>
Uitvoer

5. Radio knop
Het wordt gebruikt om de gebruiker meerkeuzemogelijkheden te bieden. Het biedt de gebruiker verschillende opties en de gebruiker moet één optie kiezen. De algemene syntaxis is:
w = RadioButton(master, option=value)>
Er zijn een aantal opties die worden gebruikt om het formaat van deze widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * root = Tk() v = IntVar() Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W) Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W) mainloop()>
Uitvoer

6. Keuzelijst
Het biedt de gebruiker een lijst waaruit de gebruiker een willekeurig aantal opties kan accepteren. De algemene syntaxis is:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * top = Tk() Lb = Listbox(top) Lb.insert(1, 'Python') Lb.insert(2, 'Java') Lb.insert(3, 'C++') Lb.insert(4, 'Any other') Lb.pack() top.mainloop()>
Uitvoer

7. Schuifbalk
Het verwijst naar de schuifregelaar die zal worden gebruikt om de vermelde widgets te implementeren. De algemene syntaxis is:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * root = Tk() scrollbar = Scrollbar(root) scrollbar.pack(side=RIGHT, fill=Y) mylist = Listbox(root, yscrollcommand=scrollbar.set) for line in range(100): mylist.insert(END, 'This is line number' + str(line)) mylist.pack(side=LEFT, fill=BOTH) scrollbar.config(command=mylist.yview) mainloop()>
Uitvoer

8. Menu
Het wordt gebruikt om allerlei soorten menu's te maken die door de applicatie worden gebruikt. De algemene syntaxis is:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Er zijn een aantal opties die worden gebruikt om het formaat van deze widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * root = Tk() menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu) menu.add_cascade(label='File', menu=filemenu) filemenu.add_command(label='New') filemenu.add_command(label='Open...') filemenu.add_separator() filemenu.add_command(label='Exit', command=root.quit) helpmenu = Menu(menu) menu.add_cascade(label='Help', menu=helpmenu) helpmenu.add_command(label='About') mainloop()>
Uitvoer

9. Combobox
Combobox-widget wordt gemaakt met behulp van de klasse ttk.Combobox uit de module tkinter.ttk. De waarden voor de Combobox worden opgegeven met behulp van de parameter waarden. De standaardwaarde wordt ingesteld met behulp van de set-methode. Een gebeurtenishandlerfunctie on_select is gebonden aan de Combobox met behulp van de bindmethode, die een label met het geselecteerde item bijwerkt telkens wanneer een item wordt geselecteerd.
Python3 import tkinter as tk from tkinter import ttk def on_select(event): selected_item = combo_box.get() label.config(text='Selected Item: ' + selected_item) root = tk.Tk() root.title('Combobox Example') # Create a label label = tk.Label(root, text='Selected Item: ') label.pack(pady=10) # Create a Combobox widget combo_box = ttk.Combobox(root, values=['Option 1', 'Option 2', 'Option 3']) combo_box.pack(pady=5) # Set default value combo_box.set('Option 1') # Bind event to selection combo_box.bind('<>', on_select) root.mainloop()>
Uitvoer
10. Schaal
Het wordt gebruikt om een grafische schuifregelaar te bieden waarmee u elke waarde op die schaal kunt selecteren. De algemene syntaxis is:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * master = Tk() w = Scale(master, from_=0, to=42) w.pack() w = Scale(master, from_=0, to=200, orient=HORIZONTAL) w.pack() mainloop()>
Uitvoer

elf. Topniveau
Deze widget wordt rechtstreeks beheerd door de vensterbeheerder. Er is geen oudervenster nodig om aan te werken. De algemene syntaxis is:
w = TopLevel(master, option=value)>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>
Uitvoer

12. Bericht
Het verwijst naar de meerregelige en niet-bewerkbare tekst. Het werkt hetzelfde als dat van Label. De algemene syntaxis is:
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Uitvoer

13. Menuknop
Het is een onderdeel van het top-downmenu dat de hele tijd in het venster blijft staan. Elke menuknop heeft zijn eigen functionaliteit. De algemene syntaxis is:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * top = Tk() mb = Menubutton ( top, text = 'GfG') mb.grid() mb.menu = Menu ( mb, tearoff = 0 ) mb['menu'] = mb.menu cVar = IntVar() aVar = IntVar() mb.menu.add_checkbutton ( label ='Contact', variable = cVar ) mb.menu.add_checkbutton ( label = 'About', variable = aVar ) mb.pack() top.mainloop()>
Uitvoer
Linux$home

14. Voortgangsbalk
Tkinter-applicatie met een voortgangsbalkwidget en een knop om de voortgang te starten. Wanneer op de knop wordt geklikt, wordt de voortgangsbalk in korte tijd tot 100% gevuld, waardoor een taak wordt gesimuleerd die tijd kost om te voltooien.
Python3 import tkinter as tk from tkinter import ttk import time def start_progress(): progress.start() # Simulate a task that takes time to complete for i in range(101): # Simulate some work time.sleep(0.05) progress['value'] = i # Update the GUI root.update_idletasks() progress.stop() root = tk.Tk() root.title('Progressbar Example') # Create a progressbar widget progress = ttk.Progressbar(root, orient='horizontal', length=300, mode='determinate') progress.pack(pady=20) # Button to start progress start_button = tk.Button(root, text='Start Progress', command=start_progress) start_button.pack(pady=10) root.mainloop()>
Uitvoer
vijftien. SpinBox
Het is een item van de ‘Entry’-widget. Hier kan waarde worden ingevoerd door een vaste waarde van getallen te selecteren. De algemene syntaxis is:
w = SpinBox(master, option=value)>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Uitgang:

16. Tekst
Om een tekst met meerdere regels te bewerken en op te maken zoals deze moet worden weergegeven. De algemene syntaxis is:
w =Text(master, option=value)>
Er zijn een aantal opties die worden gebruikt om het formaat van de tekst te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Uitvoer

17. Canvas
Het wordt gebruikt om afbeeldingen en andere complexe lay-outs te tekenen, zoals afbeeldingen, tekst en widgets. De algemene syntaxis is:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * master = Tk() w = Canvas(master, width=40, height=60) w.pack() canvas_height=20 canvas_width=200 y = int(canvas_height / 2) w.create_line(0, y, canvas_width, y ) mainloop()>
Uitvoer
binaire boom in Java

18. Gepand venster
Het is een containerwidget die wordt gebruikt om het aantal daarin gerangschikte vensters te verwerken. De algemene syntaxis is:
w = PannedWindow(master, option=value)>
Master is de parameter die wordt gebruikt om het bovenliggende venster weer te geven. Er zijn een aantal opties die worden gebruikt om het formaat van de widget te wijzigen. Het aantal opties kan worden doorgegeven als parameters, gescheiden door komma's. Sommigen van hen staan hieronder vermeld.
Python3 from tkinter import * m1 = PanedWindow() m1.pack(fill=BOTH, expand=1) left = Entry(m1, bd=5) m1.add(left) m2 = PanedWindow(m1, orient=VERTICAL) m1.add(m2) top = Scale(m2, orient=HORIZONTAL) m2.add(top) mainloop()>
Uitvoer

Kleuroptie in Tkinter
Dit voorbeeld demonstreert het gebruik van verschillende kleuropties in Tkinter-widgets, waaronder actieve achtergrond- en voorgrondkleuren, achtergrond- en voorgrondkleuren, uitgeschakelde statuskleuren en selectiekleuren. Elke widget in het voorbeeld toont een andere kleuroptie, waardoor een visuele weergave wordt geboden van hoe deze opties het uiterlijk van de widgets beïnvloeden.
Python3 import tkinter as tk root = tk.Tk() root.title('Color Options in Tkinter') # Create a button with active background and foreground colors button = tk.Button(root, text='Click Me', activebackground='blue', activeforeground='white') button.pack() # Create a label with background and foreground colors label = tk.Label(root, text='Hello, Tkinter!', bg='lightgray', fg='black') label.pack() # Create an Entry widget with selection colors entry = tk.Entry(root, selectbackground='lightblue', selectforeground='black') entry.pack() root.mainloop()>
Uitvoer
Meer informatie over het verbeteren van het lettertype: Tkinter-lettertype
Geometriebeheer
Tkinter biedt ook toegang tot de geometrische configuratie van de widgets die de widgets in de bovenliggende vensters kunnen ordenen. Er zijn hoofdzakelijk drie klassen voor geometriemanagers.
pack() methode
Het organiseert de widgets in blokken voordat ze in de bovenliggende widget worden geplaatst.
Python3 import tkinter as tk root = tk.Tk() root.title('Pack Example') # Create three buttons button1 = tk.Button(root, text='Button 1') button2 = tk.Button(root, text='Button 2') button3 = tk.Button(root, text='Button 3') # Pack the buttons vertically button1.pack() button2.pack() button3.pack() root.mainloop()>
Uitvoer
grid() methode
Het organiseert de widgets in een raster (tabelachtige structuur) voordat ze in de bovenliggende widget worden geplaatst.
Python3 import tkinter as tk root = tk.Tk() root.title('Grid Example') # Create three labels label1 = tk.Label(root, text='Label 1') label2 = tk.Label(root, text='Label 2') label3 = tk.Label(root, text='Label 3') # Grid the labels in a 2x2 grid label1.grid(row=0, column=0) label2.grid(row=0, column=1) label3.grid(row=1, column=0, columnspan=2) root.mainloop()>
Uitvoer
place() methode
Het organiseert de widgets door ze op specifieke posities te plaatsen die door de programmeur worden aangegeven.
Python3 import tkinter as tk root = tk.Tk() root.title('Place Example') # Create a label label = tk.Label(root, text='Label') # Place the label at specific coordinates label.place(x=50, y=50) root.mainloop()>
Uitvoer