Python siūlo kelias GUI (grafinės vartotojo sąsajos) kūrimo parinktis. Iš visų GUI metodų tkinter yra dažniausiai naudojamas metodas. Tai standartinė Python sąsaja su Tk GUI įrankių rinkiniu, pristatomu kartu su Python. Python Tkinter yra greičiausias ir lengviausias būdas kurti GUI programas. Sukurti GUI naudojant „Tkinter“ yra paprasta užduotis.
Turinys
- Sukurkite pirmąją Tkinter GUI programą
- Tkinter valdiklis
- Spalvos ir šrifto parinktis programoje Tkinter
- Geometrijos valdymas
Norėdami sukurti „Tkinter Python“ programą, atlikite šiuos pagrindinius veiksmus:
- Importuokite tkinter modulį : Tai daroma taip pat, kaip importuojant bet kurį kitą modulį Python . Atminkite, kad Python 2.x versijoje modulis pavadintas „Tkinter“, o Python 3.x – „tkinter“.
- Sukurkite pagrindinį langą (konteinerį) : Pagrindinis langas yra visų GUI elementų, kuriuos pridėsite vėliau, konteineris.
- Pridėkite valdiklius į pagrindinį langą : į pagrindinį langą galite pridėti bet kokį valdiklių skaičių, pvz., mygtukus, etiketes, įvesties laukus ir pan., kad sukurtumėte sąsają taip, kaip norite.
- Taikykite įvykių aktyviklius valdikliams : prie valdiklių galite pridėti įvykių paleidiklius, kad nustatytų, kaip jie reaguoja į naudotojo sąveiką.
Sukurkite pirmąją Tkinter GUI programą
Yra du pagrindiniai naudojami metodai, kuriuos vartotojas turi atsiminti kurdamas Python programą su GUI.
pasirinkti kaip
Tk()
Norėdami sukurti pagrindinį langą, „tkinter“ siūlo metodą „Tk(screenName=None, baseName=None, className='Tk', useTk=1)“. Norėdami pakeisti lango pavadinimą, galite pakeisti klasės pavadinimą į norimą. Pagrindinis kodas, naudojamas kuriant pagrindinį programos langą, yra:
mainloop ()
Yra metodas, žinomas pavadinimu mainloop(), kuris naudojamas, kai programa yra paruošta paleisti. mainloop() yra begalinis ciklas, naudojamas programai paleisti, laukti, kol įvyks įvykis, ir apdoroti įvykį tol, kol langas neuždarytas.
Pavyzdys
Python3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Išvestis

Tkinter valdiklis
Yra daug valdiklių, kuriuos galite įdėti į savo tkinter programą. Kai kurie pagrindiniai valdikliai paaiškinti toliau:
1. Etiketė
Tai reiškia ekrano laukelį, kuriame galite įdėti bet kokį tekstą ar vaizdą, kurį galima bet kada atnaujinti pagal kodą. Bendra sintaksė yra tokia:
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()>
Išvestis

2. Mygtukas
Šis valdiklis naudojamas norint pridėti mygtuką į programą. Bendra sintaksė yra tokia:
w=Button(master, option=value)>
master yra parametras, naudojamas pirminiam langui pavaizduoti. Yra daug parinkčių, kurios naudojamos norint pakeisti mygtukų formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais.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()>
Išvestis

3. Įėjimas
Jis naudojamas vienos eilutės teksto įvedimui iš vartotojo. Kelių eilučių teksto įvedimui naudojamas teksto valdiklis. Bendra sintaksė yra tokia:
w=Entry(master, option=value)>
master yra parametras, naudojamas pirminiam langui pavaizduoti. Yra daugybė parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis
normalizavimas duomenų bazėje

4. Patikrinimo mygtukas
Norėdami pasirinkti bet kokį parinkčių skaičių, vartotojui rodydami keletą parinkčių kaip perjungimo mygtukus. Bendra sintaksė yra tokia:
w = CheckButton(master, option=value)>
Yra daug parinkčių, kurios naudojamos norint pakeisti šio valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

5. Radijo mygtukas
Jis naudojamas vartotojui pasiūlyti kelių pasirinkimų parinktį. Vartotojui siūlomos kelios parinktys, o vartotojas turi pasirinkti vieną. Bendra sintaksė yra tokia:
w = RadioButton(master, option=value)>
Yra daug parinkčių, kurios naudojamos norint pakeisti šio valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

6. Sąrašo laukelis
Jis siūlo vartotojui sąrašą, iš kurio vartotojas gali priimti bet kokį skaičių parinkčių. Bendra sintaksė yra tokia:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Yra daug parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

7. Slinkties juosta
Tai reiškia skaidrių valdiklį, kuris bus naudojamas išvardytiems valdikliams įgyvendinti. Bendra sintaksė yra tokia:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Yra daugybė parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

8. Meniu
Jis naudojamas kuriant visų rūšių meniu, kuriuos naudoja programa. Bendra sintaksė yra tokia:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Yra daug parinkčių, kurios naudojamos norint pakeisti šio valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

9. Combobox
Combobox valdiklis sukuriamas naudojant ttk.Combobox klasę iš modulio tkinter.ttk. Sudėtinio laukelio reikšmės nurodomos naudojant parametrų reikšmes. Numatytoji vertė nustatoma naudojant nustatytą metodą. Įvykių tvarkyklės funkcija on_select yra susieta su Combobox naudojant susiejimo metodą, kuris atnaujina etiketę su pasirinktu elementu, kai pasirenkamas elementas.
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()> Išvestis

10. Skalė
Jis naudojamas pateikti grafinį slankiklį, leidžiantį pasirinkti bet kokią reikšmę iš tos skalės. Bendra sintaksė yra tokia:
"kruskal algoritmas"
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Yra daugybė parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

vienuolika. Auksciausias lygis
Šį valdiklį tiesiogiai valdo langų tvarkyklė. Jai dirbti nereikia jokio pirminio lango. Bendroji sintaksė yra tokia:
w = TopLevel(master, option=value)>
Yra daugybė parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
Python3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()> Išvestis

12. Pranešimas
Tai reiškia kelių eilučių ir neredaguojamą tekstą. Jis veikia taip pat, kaip ir etiketė. Bendra sintaksė yra tokia:
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Yra daugybė parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
Python3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Išvestis

13. Meniu mygtukas
Tai yra iš viršaus į apačią meniu dalis, kuri visą laiką lieka lange. Kiekvienas meniu mygtukas turi savo funkcijas. Bendra sintaksė yra tokia:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Yra daug parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

14. Progreso juosta
Tkinter programa su progreso juostos valdikliu ir mygtuku pažangai pradėti. Spustelėjus mygtuką, eigos juosta per trumpą laiką užpildoma iki 100 %, imituojant užduotį, kuriai atlikti reikia laiko.
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()> Išvestis

penkiolika. SpinBox
Tai valdiklio „Įėjimas“ įrašas. Čia vertę galima įvesti pasirinkus fiksuotą skaičių reikšmę. Bendroji sintaksė yra tokia:
w = SpinBox(master, option=value)>
Yra daugybė parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
Python3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Išvestis:

16. Tekstas
Norėdami redaguoti kelių eilučių tekstą ir formatuoti taip, kaip jis turi būti rodomas. Bendra sintaksė yra tokia:
w =Text(master, option=value)>
Yra daug parinkčių, kurios naudojamos norint pakeisti teksto formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
Python3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Išvestis

17. Drobė
Jis naudojamas piešti paveikslėlius ir kitus sudėtingus išdėstymus, tokius kaip grafika, tekstas ir valdikliai. Bendra sintaksė yra tokia:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Yra daug parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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
Tai konteinerio valdiklis, naudojamas jame išdėstytų langelių skaičiui tvarkyti. Bendra sintaksė yra tokia:
w = PannedWindow(master, option=value)>
Pagrindinis yra parametras, naudojamas pirminiam langui pavaizduoti. Yra daugybė parinkčių, kurios naudojamos norint pakeisti valdiklio formatą. Parinkčių skaičius gali būti perduodamas kaip parametrai, atskirti kableliais. Kai kurie iš jų išvardyti žemiau.
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()>
Išvestis

Spalvų pasirinkimas programoje Tkinter
Šiame pavyzdyje parodomas įvairių spalvų parinkčių naudojimas Tkinter valdikliuose, įskaitant aktyvias fono ir priekinio plano spalvas, fono ir priekinio plano spalvas, išjungtas būsenos spalvas ir pasirinkimo spalvas. Kiekvienas valdiklis pavyzdyje rodo skirtingą spalvų parinktį, vaizdžiai pavaizduodamas, kaip šios parinktys veikia valdiklių išvaizdą.
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()> Išvestis

Sužinokite daugiau, kaip patobulinti šriftą: Šriftas Tkinter
Geometrijos valdymas
„Tkinter“ taip pat siūlo prieigą prie geometrinės valdiklių konfigūracijos, kuri gali tvarkyti valdiklius pirminiuose languose. Daugiausia yra trys geometrijos vadybininkų klasės.
pack() metodas
Ji suskirsto valdiklius į blokus prieš įtraukdama į pagrindinį valdiklį.
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()> Išvestis
terminalas kali linux

grid() metodas
Prieš įtraukiant į pagrindinį valdiklį, valdikliai suskirstomi į tinklelį (į lentelę panašią struktūrą).
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()> Išvestis

vieta() metodas
Jis sutvarko valdiklius, padėdamas juos į tam tikras programuotojo nurodytas vietas.
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()> Išvestis
