logo

Python Tkinter

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

Če želite ustvariti aplikacijo Tkinter Python, sledite tem osnovnim korakom:



  1. 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«.
  2. Ustvarite glavno okno (vsebnik) : Glavno okno služi kot vsebnik za vse elemente GUI, ki jih boste dodali pozneje.
  3. 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.
  4. 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

img

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

oznaka

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

slika2

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

napredek

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 sql
Python3
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

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

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


paket

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

mreža

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

mesto