Python tilbyder flere muligheder for at udvikle GUI (Graphical User Interface). Ud af alle GUI-metoderne er tkinter den mest brugte metode. Det er en standard Python-grænseflade til Tk GUI-værktøjssættet, der leveres med Python. Python Tkinter er den hurtigste og nemmeste måde at oprette GUI-applikationer på. At oprette en GUI ved hjælp af Tkinter er en nem opgave.
Indholdsfortegnelse
- Opret første Tkinter GUI-applikation
- Tkinter-widget
- Farve- og skrifttypevalg i Tkinter
- Geometristyring
For at oprette en Tkinter Python-app skal du følge disse grundlæggende trin:
- Importer tkinter-modulet : Dette gøres ligesom at importere ethvert andet modul i Python . Bemærk, at i Python 2.x hedder modulet 'Tkinter', mens det i Python 3.x hedder 'tkinter'.
- Opret hovedvinduet (container) : Hovedvinduet fungerer som beholder for alle de GUI-elementer, du tilføjer senere.
- Tilføj widgets til hovedvinduet : Du kan tilføje et hvilket som helst antal widgets som knapper, etiketter, indtastningsfelter osv. til hovedvinduet for at designe grænsefladen som ønsket.
- Anvend hændelsesudløsere på widgets : Du kan vedhæfte hændelsesudløsere til widgets for at definere, hvordan de reagerer på brugerinteraktioner.
Opret første Tkinter GUI-applikation
Der er to hovedmetoder, som brugeren skal huske, mens han opretter Python-applikationen med GUI.
cdr fuld form
Tk()
For at oprette et hovedvindue tilbyder tkinter en metode 'Tk(skærmnavn=Ingen, basenavn=Ingen, klassenavn='Tk', brugTk=1)'. For at ændre navnet på vinduet kan du ændre klassenavnet til det ønskede. Den grundlæggende kode, der bruges til at oprette programmets hovedvindue, er:
mainloop()
Der er en metode kendt under navnet mainloop(), der bruges, når din applikation er klar til at køre. mainloop() er en uendelig løkke, der bruges til at køre applikationen, vente på, at en hændelse opstår, og behandle hændelsen, så længe vinduet ikke er lukket.
Eksempel
Python3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Produktion

Tkinter-widget
Der er en række widgets, som du kan sætte i din tkinter-applikation. Nogle af de vigtigste widgets er forklaret nedenfor:
1. Etiket
Det refererer til visningsboksen, hvor du kan indsætte enhver tekst eller billede, som kan opdateres til enhver tid i henhold til koden. Den generelle syntaks er:
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()>
Produktion

2. Knap
For at tilføje en knap i din applikation bruges denne widget. Den generelle syntaks er:
w=Button(master, option=value)>
master er den parameter, der bruges til at repræsentere det overordnede vindue. Der er en række muligheder, som bruges til at ændre formatet på knapperne. Antallet af muligheder kan videregives som parametre adskilt af kommaer.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()>
Produktion

3. Indgang
Den bruges til at indtaste tekstindtastningen på en enkelt linje fra brugeren. Til tekstinput med flere linjer bruges tekstwidget. Den generelle syntaks er:
w=Entry(master, option=value)>
master er den parameter, der bruges til at repræsentere det overordnede vindue. Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion
datoformat.format java

4. Check-knap
For at vælge et hvilket som helst antal muligheder ved at vise et antal muligheder for en bruger som skifteknapper. Den generelle syntaks er:
w = CheckButton(master, option=value)>
Der er en række muligheder, som bruges til at ændre formatet på denne widget. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

5. Radio knap
Det bruges til at tilbyde multi-choice mulighed for brugeren. Det giver flere muligheder for brugeren, og brugeren skal vælge én mulighed. Den generelle syntaks er:
w = RadioButton(master, option=value)>
Der er en række muligheder, som bruges til at ændre formatet på denne widget. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

6. Listeboks
Det tilbyder en liste til brugeren, hvorfra brugeren kan acceptere et vilkårligt antal muligheder. Den generelle syntaks er:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

7. Rullebar
Det refererer til slide-controlleren, som vil blive brugt til at implementere listede widgets. Den generelle syntaks er:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

8. Menu
Det bruges til at oprette alle slags menuer, der bruges af applikationen. Den generelle syntaks er:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Der er en række muligheder, som bruges til at ændre formatet på denne widget. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

9. Kombinationsfelt
Combobox-widget oprettes ved hjælp af ttk.Combobox-klassen fra tkinter.ttk-modulet. Værdierne for Combobox er angivet ved hjælp af værdier parameteren. Standardværdien indstilles ved hjælp af sætmetoden. En hændelseshåndteringsfunktion on_select er bundet til Combobox ved hjælp af bindemetoden, som opdaterer en etiket med det valgte element, hver gang et element er valgt.
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()> Produktion

10. vægt
Den bruges til at give en grafisk skyder, der gør det muligt at vælge en hvilken som helst værdi fra denne skala. Den generelle syntaks er:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

elleve. Højeste niveau
Denne widget styres direkte af vindueshåndteringen. Det behøver ikke noget overordnet vindue at arbejde på. Den generelle syntaks er:
w = TopLevel(master, option=value)>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
Python3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()> Produktion

12. Besked
Det refererer til den flerlinjede og ikke-redigerbare tekst. Det fungerer på samme måde som Label. Den generelle syntaks er:
brug af operativsystem
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
Python3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Produktion

13. Menuknap
Det er en del af top-down menuen, som forbliver på vinduet hele tiden. Hver menuknap har sin egen funktionalitet. Den generelle syntaks er:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

14. Progresslinje
Tkinter-applikation med en Progressbar-widget og en knap til at starte fremskridtet. Når der klikkes på knappen, fyldes statuslinjen op til 100 % over en kort periode, hvilket simulerer en opgave, der tager tid at fuldføre.
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()> Produktion

femten. SpinBox
Det er en indgang i 'Entry'-widget. Her kan værdi indtastes ved at vælge en fast værdi af tal. Den generelle syntaks er:
w = SpinBox(master, option=value)>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
Python3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Produktion:

16. Tekst
For at redigere en tekst med flere linjer og formatere den måde, den skal vises på. Den generelle syntaks er:
w =Text(master, option=value)>
Der er en række muligheder, som bruges til at ændre tekstens format. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
Python3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Produktion

17. Lærred
Det bruges til at tegne billeder og andre komplekse layout som grafik, tekst og widgets. Den generelle syntaks er:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Outpu

18. Panoreret vindue
Det er en container-widget, som bruges til at håndtere antallet af ruder arrangeret i den. Den generelle syntaks er:
w = PannedWindow(master, option=value)>
Master er den parameter, der bruges til at repræsentere det overordnede vindue. Der er en række muligheder, som bruges til at ændre formatet på widgetten. Antallet af muligheder kan videregives som parametre adskilt af kommaer. Nogle af dem er anført nedenfor.
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()>
Produktion

Farvevalg i Tkinter
Dette eksempel demonstrerer brugen af forskellige farveindstillinger i Tkinter-widgets, inklusive aktive baggrunds- og forgrundsfarver, baggrunds- og forgrundsfarver, deaktiverede tilstandsfarver og udvalgsfarver. Hver widget i eksemplet viser en anden farveindstilling, der giver en visuel repræsentation af, hvordan disse indstillinger påvirker udseendet af widgets.
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()> Produktion

Lær mere for at forbedre skrifttype: Tkinter skrifttype
Geometristyring
Tkinter tilbyder også adgang til den geometriske konfiguration af widgets, som kan organisere widgets i de overordnede vinduer. Der er hovedsageligt tre geometrilederklasser.
pack() metode
Den organiserer widgets i blokke, før den placeres i den overordnede widget.
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()> Produktion

grid() metode
Den organiserer widgets i gitter (tabellignende struktur), før de placeres i den overordnede widget.
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()> Produktion

place() metode
Den organiserer widgets ved at placere dem på specifikke positioner, der er instrueret af programmøren.
byer i australienPython3
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()> Produktion
