Python ponuja več možnosti za razvoj GUI (grafični uporabniški vmesnik). Od vseh metod GUI je tkinter najpogosteje uporabljena metoda. Je standardni vmesnik Python za komplet orodij Tk GUI, ki je priložen Pythonu. Python Tkinter je najhitrejši in najpreprostejši način za ustvarjanje aplikacij GUI. Ustvarjanje GUI z uporabo Tkinterja je lahka naloga.
Kazalo
- Ustvarite prvo aplikacijo Tkinter GUI
- Pripomoček Tkinter
- Možnost barve in pisave v Tkinterju
- Upravljanje geometrije
Če želite ustvariti aplikacijo Tkinter Python, sledite tem osnovnim korakom:
- Uvozite modul tkinter : To se izvede tako kot uvoz katerega koli drugega modula Python . Upoštevajte, da se v Pythonu 2.x modul imenuje »Tkinter«, medtem ko se v Pythonu 3.x imenuje »tkinter«.
- Ustvarite glavno okno (vsebnik) : Glavno okno služi kot vsebnik za vse elemente GUI, ki jih boste dodali pozneje.
- Dodajte pripomočke v glavno okno : V glavno okno lahko dodate poljubno število gradnikov, kot so gumbi, oznake, vnosna polja itd., da oblikujete vmesnik po želji.
- Uporabi sprožilce dogodkov za pripomočke : gradnikom lahko pripnete sprožilce dogodkov, da določite, kako se odzivajo na interakcije uporabnikov.
Ustvarite prvo aplikacijo Tkinter GUI
Uporabljata se dve glavni metodi, ki si ju mora uporabnik zapomniti, ko ustvarja aplikacijo Python z GUI.
vzmetni moduli
Tk()
Za ustvarjanje glavnega okna tkinter ponuja metodo 'Tk(screenName=None, baseName=None, className='Tk', useTk=1)'. Če želite spremeniti ime okna, lahko spremenite className v želeno. Osnovna koda, ki se uporablja za ustvarjanje glavnega okna aplikacije, je:
glavna zanka()
Obstaja metoda, znana pod imenom mainloop(), ki se uporablja, ko je vaša aplikacija pripravljena za zagon. mainloop() je neskončna zanka, ki se uporablja za zagon aplikacije, čakanje na dogodek in obdelavo dogodka, dokler okno ni zaprto.
Primer
Python3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Izhod

Pripomoček Tkinter
Obstajajo številni pripomočki, ki jih lahko vstavite v svojo aplikacijo tkinter. Nekateri glavni pripomočki so razloženi spodaj:
1. Oznaka
Nanaša se na prikazno polje, kamor lahko postavite poljubno besedilo ali sliko, ki jo je mogoče kadar koli posodobiti v skladu s kodo. Splošna sintaksa je:
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()>
Izhod

2. Gumb
Ta pripomoček se uporablja za dodajanje gumba v vaši aplikaciji. Splošna sintaksa je:
w=Button(master, option=value)>
master je parameter, ki se uporablja za predstavitev nadrejenega okna. Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gumbov. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami.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()>
Izhod

3. Vstop
Uporablja se za vnos enovrstičnega besedila uporabnika. Za večvrstični vnos besedila se uporablja gradnik za besedilo. Splošna sintaksa je:
w=Entry(master, option=value)>
master je parameter, ki se uporablja za predstavitev nadrejenega okna. Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod
bratje in sestre kylie jenner

4. CheckButton
Če želite izbrati poljubno število možnosti, tako da uporabniku prikažete številne možnosti kot preklopne gumbe. Splošna sintaksa je:
w = CheckButton(master, option=value)>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike tega pripomočka. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

5. Radijski gumb
Uporablja se za ponujanje možnosti več izbir uporabniku. Uporabniku ponuja več možnosti in uporabnik mora izbrati eno možnost. Splošna sintaksa je:
w = RadioButton(master, option=value)>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike tega pripomočka. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

6. Listbox
Uporabniku ponudi seznam, s katerega lahko uporabnik sprejme poljubno število možnosti. Splošna sintaksa je:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

7. Drsni trak
Nanaša se na krmilnik diapozitivov, ki bo uporabljen za implementacijo navedenih pripomočkov. Splošna sintaksa je:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

8. meni
Uporablja se za ustvarjanje vseh vrst menijev, ki jih uporablja aplikacija. Splošna sintaksa je:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike tega pripomočka. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

9. Kombinirano polje
Pripomoček Combobox je ustvarjen z uporabo razreda ttk.Combobox iz modula tkinter.ttk. Vrednosti za kombinirano polje so določene s parametrom values. Privzeta vrednost je nastavljena z metodo set. Funkcija obdelovalca dogodkov on_select je vezana na Combobox z uporabo metode povezovanja, ki posodobi oznako z izbranim elementom, kadar koli je element izbran.
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()> Izhod

10. Lestvica
Uporablja se za zagotavljanje grafičnega drsnika, ki omogoča izbiro katere koli vrednosti s te lestvice. Splošna sintaksa je:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

enajst. Najvišji nivo
Ta gradnik neposredno nadzira upravitelj oken. Za delo ne potrebuje nadrejenega okna. Splošna sintaksa je:
w = TopLevel(master, option=value)>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
Python3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()> Izhod

12. Sporočilo
Nanaša se na večvrstično besedilo, ki ga ni mogoče urejati. Deluje enako kot Label. Splošna sintaksa je:
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
Python3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Izhod

13. MenuButton
Je del menija od zgoraj navzdol, ki je ves čas v oknu. Vsak menijski gumb ima svojo funkcijo. Splošna sintaksa je:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

14. Vrstica napredka
Aplikacija Tkinter s pripomočkom Progressbar in gumbom za začetek napredka. Ko kliknete gumb, se vrstica napredka v kratkem času zapolni do 100 % in simulira nalogo, ki zahteva čas za dokončanje.
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()> Izhod

petnajst. SpinBox
To je vnos gradnika »Vnos«. Tu lahko vrednost vnesete tako, da izberete fiksno vrednost števil. Splošna sintaksa je:
w = SpinBox(master, option=value)>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
posodobitev iz join sqlPython3
from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Izhod:

16. Besedilo
Za urejanje večvrstičnega besedila in oblikovanje tako, kot mora biti prikazano. Splošna sintaksa je:
w =Text(master, option=value)>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike besedila. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
Python3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Izhod

17. Platno
Uporablja se za risanje slik in drugih kompleksnih postavitev, kot so grafika, besedilo in pripomočki. Splošna sintaksa je:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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
To je vsebniški gradnik, ki se uporablja za obdelavo števila podoknov, ki so v njem razporejeni. Splošna sintaksa je:
w = PannedWindow(master, option=value)>
Master je parameter, ki se uporablja za predstavitev nadrejenega okna. Obstaja več možnosti, ki se uporabljajo za spreminjanje oblike gradnika. Število možnosti je mogoče posredovati kot parametre, ločene z vejicami. Nekateri od njih so navedeni spodaj.
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()>
Izhod

Barvna možnost v Tkinterju
Ta primer prikazuje uporabo različnih barvnih možnosti v gradnikih Tkinter, vključno z aktivnimi barvami ozadja in ospredja, barvami ozadja in ospredja, barvami onemogočenega stanja in barvami izbire. Vsak gradnik v primeru prikazuje drugačno barvno možnost, ki zagotavlja vizualno predstavitev, kako te možnosti vplivajo na videz gradnikov.
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()> Izhod
razdeljen z nizom java

Več o tem, kako izboljšati pisavo: Pisava Tkinter
Upravljanje geometrije
Tkinter ponuja tudi dostop do geometrijske konfiguracije gradnikov, ki lahko organizira gradnike v nadrejenih oknih. Obstajajo predvsem trije razredi upraviteljev geometrije.
metoda pack().
Gradnike organizira v bloke, preden jih postavi v nadrejeni gradnik.
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()> Izhod

metoda grid().
Gradnike organizira v mrežo (struktura, podobna tabeli), preden jih postavi v nadrejeni gradnik.
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()> Izhod

metoda place().
Gradnike organizira tako, da jih postavi na določene položaje, ki jih vodi programer.
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()> Izhod
