Python piedāvā vairākas iespējas GUI (grafiskā lietotāja interfeisa) izstrādei. No visām GUI metodēm tkinter ir visbiežāk izmantotā metode. Tā ir standarta Python saskarne ar Tk GUI rīku komplektu, kas tiek piegādāts kopā ar Python. Python Tkinter ir ātrākais un vienkāršākais veids, kā izveidot GUI lietojumprogrammas. GUI izveide, izmantojot Tkinter, ir vienkāršs uzdevums.
Satura rādītājs
- Izveidojiet pirmo Tkinter GUI lietojumprogrammu
- Tkinter logrīks
- Krāsu un fontu opcija programmā Tkinter
- Ģeometrijas vadība
Lai izveidotu Tkinter Python lietotni, veiciet šīs pamata darbības:
- Importējiet tkinter moduli : Tas tiek darīts tāpat kā jebkura cita moduļa importēšana Python . Ņemiet vērā, ka Python 2.x modulis ir nosaukts par 'Tkinter', savukārt Python 3.x tas ir nosaukts par 'tkinter'.
- Izveidojiet galveno logu (konteineru) : galvenais logs kalpo kā konteiners visiem GUI elementiem, ko pievienosit vēlāk.
- Pievienojiet logrīkus galvenajam logam : galvenajam logam varat pievienot jebkādu skaitu logrīku, piemēram, pogas, etiķetes, ievades laukus utt., lai izveidotu interfeisu pēc vēlēšanās.
- Lietojiet notikumu aktivizētājus logrīkiem : logrīkiem varat pievienot notikumu aktivizētājus, lai noteiktu, kā tie reaģē uz lietotāja mijiedarbību.
Izveidojiet pirmo Tkinter GUI lietojumprogrammu
Ir divas galvenās izmantotās metodes, kuras lietotājam ir jāatceras, veidojot Python lietojumprogrammu ar GUI.
'masona formula'
Tk()
Lai izveidotu galveno logu, tkinter piedāvā metodi 'Tk(screenName=None, baseName=None, className='Tk', useTk=1)'. Lai mainītu loga nosaukumu, varat mainīt klases nosaukumu uz vēlamo. Lietojumprogrammas galvenā loga izveidošanai izmantotais pamatkods ir:
mainloop()
Ir metode, kas pazīstama ar nosaukumu mainloop(), tiek izmantota, kad jūsu lietojumprogramma ir gatava darbībai. mainloop() ir bezgalīga cilpa, ko izmanto, lai palaistu lietojumprogrammu, gaidītu, līdz notiek notikums, un apstrādātu notikumu, kamēr logs nav aizvērts.
Piemērs
Python3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Izvade

Tkinter logrīks
Ir vairāki logrīki, kurus varat ievietot savā tkinter lietojumprogrammā. Daži no galvenajiem logrīkiem ir izskaidroti tālāk:
1. Etiķete
Tas attiecas uz displeja lodziņu, kurā varat ievietot jebkuru tekstu vai attēlu, ko jebkurā laikā var atjaunināt atbilstoši kodam. Vispārējā sintakse ir šāda:
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()>
Izvade

2. Poga
Lai lietojumprogrammai pievienotu pogu, tiek izmantots šis logrīks. Vispārējā sintakse ir šāda:
w=Button(master, option=value)>
master ir parametrs, ko izmanto, lai attēlotu vecāklogu. Ir vairākas iespējas, kas tiek izmantotas, lai mainītu pogu formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem.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()>
Izvade

3. Ieeja
To izmanto, lai ievadītu vienas rindiņas teksta ievadi no lietotāja. Vairāku rindiņu teksta ievadei tiek izmantots teksta logrīks. Vispārējā sintakse ir šāda:
w=Entry(master, option=value)>
master ir parametrs, ko izmanto, lai attēlotu vecāklogu. Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade
java sugas

4. Pārbaudes poga
Lai atlasītu neierobežotu skaitu opciju, lietotājam parādot vairākas opcijas kā pārslēgšanas pogas. Vispārējā sintakse ir šāda:
w = CheckButton(master, option=value)>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu šī logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

5. Radio poga
To izmanto, lai piedāvātu lietotājam vairākas izvēles iespējas. Lietotājam tiek piedāvātas vairākas iespējas, un lietotājam ir jāizvēlas viena iespēja. Vispārējā sintakse ir šāda:
w = RadioButton(master, option=value)>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu šī logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

6. Listbox
Tas piedāvā lietotājam sarakstu, kurā lietotājs var pieņemt jebkādu skaitu opciju. Vispārējā sintakse ir šāda:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

7. Ritjosla
Tas attiecas uz slaidu kontrolleri, kas tiks izmantots uzskaitīto logrīku ieviešanai. Vispārējā sintakse ir šāda:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

8. Izvēlne
To izmanto, lai izveidotu visu veidu izvēlnes, ko izmanto lietojumprogramma. Vispārējā sintakse ir šāda:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu šī logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

9. Kombinētais lodziņš
Combobox logrīks tiek izveidots, izmantojot ttk.Combobox klasi no moduļa tkinter.ttk. Kombinētā lodziņa vērtības tiek norādītas, izmantojot vērtību parametru. Noklusējuma vērtība tiek iestatīta, izmantojot iestatīto metodi. Notikumu apstrādātāja funkcija on_select ir saistīta ar kombinēto lodziņu, izmantojot saistīšanas metodi, kas atjaunina etiķeti ar atlasīto vienumu ikreiz, kad tiek atlasīts vienums.
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()> Izvade

10. Mērogs
To izmanto, lai nodrošinātu grafisku slīdni, kas ļauj atlasīt jebkuru vērtību no šīs skalas. Vispārējā sintakse ir šāda:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

vienpadsmit. Augstākais līmenis
Šo logrīku tieši kontrolē logu pārvaldnieks. Lai strādātu ar to, nav nepieciešams vecāklogs. Vispārējā sintakse ir šāda:
w = TopLevel(master, option=value)>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
Python3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()> Izvade
korekts java

12. Ziņa
Tas attiecas uz vairāku rindiņu un nerediģējamu tekstu. Tas darbojas tāpat kā etiķete. Vispārējā sintakse ir šāda:
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
Python3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Izvade

13. Izvēlnes poga
Tā ir daļa no augšējās izvēlnes, kas visu laiku paliek logā. Katrai izvēlnes pogai ir sava funkcionalitāte. Vispārējā sintakse ir šāda:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

14. Progresa josla
Tkinter lietojumprogramma ar progresa joslas logrīku un pogu, lai sāktu progresu. Noklikšķinot uz pogas, progresa josla īsā laika posmā aizpildās līdz pat 100%, simulējot uzdevumu, kura izpildei nepieciešams laiks.
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()> Izvade

piecpadsmit. SpinBox
Tas ir logrīka “Ieraksts” ieraksts. Šeit vērtību var ievadīt, atlasot fiksētu skaitļu vērtību. Vispārējā sintakse ir šāda:
w = SpinBox(master, option=value)>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
Python3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Izvade:

16. Teksts
Lai rediģētu vairāku rindiņu tekstu un formatētu tā, kā tas ir jāparāda. Vispārējā sintakse ir šāda:
w =Text(master, option=value)>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu teksta formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
Python3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Izvade

17. Audekls
To izmanto, lai zīmētu attēlus un citus sarežģītus izkārtojumus, piemēram, grafiku, tekstu un logrīkus. Vispārējā sintakse ir šāda:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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
Tas ir konteinera logrīks, ko izmanto, lai apstrādātu tajā izvietoto rūšu skaitu. Vispārējā sintakse ir šāda:
w = PannedWindow(master, option=value)>
Master ir parametrs, ko izmanto, lai attēlotu vecāklogu. Ir vairākas iespējas, kas tiek izmantotas, lai mainītu logrīka formātu. Opciju skaitu var nodot kā parametrus, atdalot tos ar komatiem. Daži no tiem ir uzskaitīti zemāk.
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()>
Izvade

Krāsu opcija programmā Tkinter
Šis piemērs parāda dažādu krāsu opciju izmantošanu Tkinter logrīkos, tostarp aktīvās fona un priekšplāna krāsas, fona un priekšplāna krāsas, atspējotās stāvokļa krāsas un atlases krāsas. Katrs logrīks piemērā parāda citu krāsu opciju, nodrošinot vizuālu priekšstatu par to, kā šīs opcijas ietekmē logrīku izskatu.
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()> Izvade

Uzziniet vairāk, kā uzlabot fontu: Tkinter fonts
Ģeometrijas vadība
Tkinter piedāvā arī piekļuvi logrīku ģeometriskajai konfigurācijai, kas var sakārtot logrīkus vecāku logos. Galvenokārt ir trīs ģeometrijas menedžeru klases.
pack() metode
Tas sakārto logrīkus blokos pirms ievietošanas vecāklogrīkā.
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()> Izvade

grid() metode
Tas sakārto logrīkus režģī (tabulai līdzīga struktūra) pirms ievietošanas vecāklogrīkā.
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()> Izvade

git pull izcelsmes meistars
vieta() metode
Tas organizē logrīkus, novietojot tos noteiktās programmētāja norādītās pozīcijās.
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()> Izvade
