logo

Python Tkinter

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

Norėdami sukurti „Tkinter Python“ programą, atlikite šiuos pagrindinius veiksmus:



  1. 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“.
  2. Sukurkite pagrindinį langą (konteinerį) : Pagrindinis langas yra visų GUI elementų, kuriuos pridėsite vėliau, konteineris.
  3. 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.
  4. 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

img

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

etiketė

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

vaizdas2

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

progresas

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

2024-04-2516-50-47online-video-cuttercom-ezgifcom-video-to-gif-converter

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


paketas

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

tinklelis

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

vieta