logo

Python Tkinter

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



Om een ​​Tkinter Python-app te maken, volgt u deze basisstappen:

  1. 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.
  2. Maak het hoofdvenster (container) : Het hoofdvenster fungeert als container voor alle GUI-elementen die u later toevoegt.
  3. 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.
  4. 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



afb

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

etiket

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

afbeelding2

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

voortgang

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

2024-04-2516-50-47online-video-cuttercom-ezgifcom-video-naar-gif-converter

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


pak

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

rooster

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

plaats