Python tilbyr flere alternativer for å utvikle GUI (Graphical User Interface). Av alle GUI-metodene er tkinter den mest brukte metoden. Det er et standard Python-grensesnitt til Tk GUI-verktøysettet som leveres med Python. Python Tkinter er den raskeste og enkleste måten å lage GUI-applikasjoner på. Å lage et GUI ved hjelp av Tkinter er en enkel oppgave.
Innholdsfortegnelse
- Opprett første Tkinter GUI-applikasjon
- Tkinter-widget
- Farge- og skriftalternativ i Tkinter
- Geometristyring
For å lage en Tkinter Python-app følger du disse grunnleggende trinnene:
- Importer tkinter-modulen : Dette gjøres akkurat som å importere alle andre moduler i Python . Merk at i Python 2.x heter modulen ‘Tkinter’, mens den i Python 3.x heter ‘tkinter’.
- Opprett hovedvinduet (beholder) : Hovedvinduet fungerer som beholderen for alle GUI-elementene du legger til senere.
- Legg til widgets i hovedvinduet : Du kan legge til et hvilket som helst antall widgets som knapper, etiketter, inntastingsfelt, etc., til hovedvinduet for å designe grensesnittet etter ønske.
- Bruk hendelsestriggere på widgetene : Du kan legge ved hendelsestriggere til widgetene for å definere hvordan de reagerer på brukerinteraksjoner.
Opprett første Tkinter GUI-applikasjon
Det er to hovedmetoder som brukes som brukeren må huske når han oppretter Python-applikasjonen med GUI.
rekkefølge etter tilfeldig sql
Tk()
For å lage et hovedvindu tilbyr tkinter en metode 'Tk(skjermnavn=Ingen, basenavn=Ingen, klassenavn='Tk', brukTk=1)'. For å endre navnet på vinduet kan du endre klassenavnet til ønsket. Den grunnleggende koden som brukes til å lage hovedvinduet til applikasjonen er:
mainloop()
Det er en metode kjent under navnet mainloop() som brukes når applikasjonen din er klar til å kjøre. mainloop() er en uendelig sløyfe som brukes til å kjøre applikasjonen, vente på at en hendelse inntreffer og behandle hendelsen så lenge vinduet ikke er lukket.
Eksempel
Python3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Produksjon
Tkinter-widget
Det er en rekke widgets som du kan sette inn i tkinter-applikasjonen din. Noen av de viktigste widgetene er forklart nedenfor:
1. Merkelapp
Det refererer til visningsboksen der du kan legge inn tekst eller bilde som kan oppdateres når som helst i henhold til koden. Den generelle syntaksen 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()>
Produksjon
2. Knapp
For å legge til en knapp i applikasjonen din, brukes denne widgeten. Den generelle syntaksen er:
w=Button(master, option=value)>
master er parameteren som brukes til å representere det overordnede vinduet. Det er flere alternativer som brukes til å endre formatet på knappene. Antall alternativer kan sendes som parametere atskilt med komma.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()>
Produksjon

3. Inngang
Den brukes til å legge inn enkeltlinjetekst fra brukeren. For flerlinjers tekstinntasting brukes tekstwidget. Den generelle syntaksen er:
w=Entry(master, option=value)>
master er parameteren som brukes til å representere det overordnede vinduet. Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon
datoformat.format java

4. Sjekkknapp
For å velge et hvilket som helst antall alternativer ved å vise et antall alternativer for en bruker som veksleknapper. Den generelle syntaksen er:
w = CheckButton(master, option=value)>
Det er en rekke alternativer som brukes til å endre formatet til denne widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

5. Radioknapp
Den brukes til å tilby flervalgsalternativer til brukeren. Den tilbyr flere alternativer til brukeren, og brukeren må velge ett alternativ. Den generelle syntaksen er:
w = RadioButton(master, option=value)>
Det er en rekke alternativer som brukes til å endre formatet til denne widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

6. Listeboks
Den tilbyr en liste til brukeren der brukeren kan akseptere et hvilket som helst antall alternativer. Den generelle syntaksen er:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

7. Rullefelt
Det refererer til lysbildekontrolleren som vil bli brukt til å implementere oppførte widgets. Den generelle syntaksen er:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

8. Meny
Den brukes til å lage alle slags menyer som brukes av applikasjonen. Den generelle syntaksen er:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Det er en rekke alternativer som brukes til å endre formatet til denne widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

9. Combobox
Combobox-widgeten lages ved å bruke ttk.Combobox-klassen fra tkinter.ttk-modulen. Verdiene for kombinasjonsboksen spesifiseres ved hjelp av verdiparameteren. Standardverdien angis ved bruk av innstillingsmetoden. En hendelsesbehandlerfunksjon on_select er bundet til kombinasjonsboksen ved å bruke bindingsmetoden, som oppdaterer en etikett med det valgte elementet 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()>
Produksjon
10. Skala
Den brukes til å gi en grafisk glidebryter som lar deg velge hvilken som helst verdi fra den skalaen. Den generelle syntaksen er:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

elleve. Toppnivå
Denne widgeten styres direkte av vindusbehandleren. Det trenger ikke noe overordnet vindu å jobbe på. Den generelle syntaksen er:
w = TopLevel(master, option=value)>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp nedenfor.
Python3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>
Produksjon

12. Beskjed
Det refererer til flerlinjers og ikke-redigerbar tekst. Det fungerer på samme måte som Label. Den generelle syntaksen er:
python-baneinnstilling
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

1. 3. Menyknapp
Det er en del av top-down-menyen som forblir på vinduet hele tiden. Hver menyknapp har sin egen funksjonalitet. Den generelle syntaksen er:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

14. Fremdriftslinje
Tkinter-applikasjon med en Progressbar-widget og en knapp for å starte fremdriften. Når knappen klikkes, fylles fremdriftslinjen opp til 100 % over en kort periode, og simulerer en oppgave som tar tid å fullfø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()>
Produksjon
femten. SpinBox
Det er en oppføring av 'Entry'-widget. Her kan verdi legges inn ved å velge en fast verdi av tall. Den generelle syntaksen er:
w = SpinBox(master, option=value)>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp nedenfor.
Python3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Produksjon:

16. Tekst
For å redigere en tekst med flere linjer og formatere slik den skal vises. Den generelle syntaksen er:
w =Text(master, option=value)>
Det finnes en rekke alternativer som brukes til å endre formatet på teksten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp nedenfor.
Python3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Produksjon

17. Lerret
Den brukes til å tegne bilder og andre komplekse layouter som grafikk, tekst og widgets. Den generelle syntaksen er:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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. PannedWindow
Det er en container-widget som brukes til å håndtere antall ruter som er arrangert i den. Den generelle syntaksen er:
w = PannedWindow(master, option=value)>
Master er parameteren som brukes til å representere det overordnede vinduet. Det er en rekke alternativer som brukes til å endre formatet til widgeten. Antall alternativer kan sendes som parametere atskilt med komma. Noen av dem er listet opp 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()>
Produksjon

Fargealternativ i Tkinter
Dette eksemplet demonstrerer bruken av ulike fargealternativer i Tkinter-widgets, inkludert aktive bakgrunns- og forgrunnsfarger, bakgrunns- og forgrunnsfarger, deaktiverte tilstandsfarger og utvalgsfarger. Hver widget i eksemplet viser et annet fargealternativ, og gir en visuell representasjon av hvordan disse alternativene påvirker utseendet til widgetene.
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()>
Produksjon
Lær mer for å forbedre skrifttypen: Tkinter skrift
Geometristyring
Tkinter tilbyr også tilgang til den geometriske konfigurasjonen av widgetene som kan organisere widgetene i de overordnede vinduene. Det er hovedsakelig tre geometrilederklasser.
pack()-metoden
Den organiserer widgetene i blokker før de plasseres i den overordnede widgeten.
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()>
Produksjon
grid()-metoden
Den organiserer widgetene i rutenett (tabelllignende struktur) før de plasseres i den overordnede widgeten.
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()>
Produksjon
sted() metode
Den organiserer widgetene ved å plassere dem på spesifikke posisjoner instruert av programmereren.
java polymorfismePython3
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()>
Produksjon