logo

Python Tkinter

Python ponúka viacero možností vývoja GUI (Graphical User Interface). Zo všetkých metód GUI je tkinter najčastejšie používanou metódou. Je to štandardné rozhranie Pythonu k súprave nástrojov GUI Tk dodávané s Pythonom. Python Tkinter je najrýchlejší a najjednoduchší spôsob vytvárania GUI aplikácií. Vytvorenie GUI pomocou Tkinter je jednoduchá úloha.

Obsah



Ak chcete vytvoriť aplikáciu Tkinter Python, postupujte podľa týchto základných krokov:

  1. Importujte modul tkinter : Toto sa vykonáva rovnako ako import akéhokoľvek iného modulu Python . Všimnite si, že v Pythone 2.x má modul názov „Tkinter“, zatiaľ čo v Pythone 3.x má názov „tkinter“.
  2. Vytvorte hlavné okno (kontajner) : Hlavné okno slúži ako kontajner pre všetky prvky GUI, ktoré pridáte neskôr.
  3. Pridajte widgety do hlavného okna : Do hlavného okna môžete pridať ľubovoľný počet miniaplikácií, ako sú tlačidlá, štítky, vstupné polia atď., aby ste mohli navrhnúť rozhranie podľa potreby.
  4. Použite spúšťače udalostí na miniaplikácie : K miniaplikáciám môžete pripojiť spúšťače udalostí a definovať, ako budú reagovať na interakcie používateľa.

Vytvorte prvú aplikáciu Tkinter GUI

Používajú sa dve hlavné metódy, ktoré si používateľ musí zapamätať pri vytváraní aplikácie Python s GUI.

scan.ďalšia java

Tk()

Na vytvorenie hlavného okna ponúka tkinter metódu ‘Tk(názov obrazovky=Žiadne, základnéNázov=Žiadne, názov triedy=’Tk’, použitieTk=1)’. Ak chcete zmeniť názov okna, môžete zmeniť názov triedy na požadovaný. Základný kód použitý na vytvorenie hlavného okna aplikácie je:



mainloop()

Existuje metóda známa pod názvom mainloop(), ktorá sa používa, keď je vaša aplikácia pripravená na spustenie. mainloop() je nekonečná slučka používaná na spustenie aplikácie, čakanie na výskyt udalosti a spracovanie udalosti, kým sa okno nezatvorí.

Príklad

Python3
import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>

Výkon



img

Widget Tkinter

Existuje množstvo widgetov, ktoré môžete vložiť do svojej aplikácie tkinter. Niektoré z hlavných widgetov sú vysvetlené nižšie:

1. Označenie

Vzťahuje sa na zobrazovacie pole, do ktorého môžete vložiť ľubovoľný text alebo obrázok, ktorý je možné kedykoľvek aktualizovať podľa kódu. Všeobecná syntax 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()>

Výkon

štítok

2. Tlačidlo

Na pridanie tlačidla do vašej aplikácie sa používa tento widget. Všeobecná syntax je:

w=Button(master, option=value)>

master je parameter používaný na reprezentáciu nadradeného okna. Existuje množstvo možností, ktoré sa používajú na zmenu formátu tlačidiel. Počet možností je možné zadať ako parametre oddelené čiarkami.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()>


Výkon


3. Vstup

Používa sa na zadávanie jednoriadkového textu od používateľa. Na zadávanie viacriadkového textu sa používa miniaplikácia Text. Všeobecná syntax je:

w=Entry(master, option=value)>

master je parameter používaný na reprezentáciu nadradeného okna. Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon

pole v jazyku Java

4. CheckButton

Výber ľubovoľného počtu možností zobrazením viacerých možností používateľovi ako prepínacích tlačidiel. Všeobecná syntax je:

w = CheckButton(master, option=value)>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu tohto widgetu. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon



5. Tlačítko na Rádiu

Používa sa na to, aby používateľovi ponúkla možnosť výberu z viacerých možností. Používateľovi ponúka niekoľko možností a používateľ si musí vybrať jednu možnosť. Všeobecná syntax je:

w = RadioButton(master, option=value)>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu tohto widgetu. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon

6. Zoznam

Používateľovi ponúka zoznam, z ktorého môže používateľ prijať ľubovoľný počet možností. Všeobecná syntax je:

w = Listbox(master, option=value) master is the parameter used to represent the parent window.>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon


7. Posuvník

Vzťahuje sa na posuvný ovládač, ktorý sa použije na implementáciu uvedených widgetov. Všeobecná syntax je:

w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon

8. Ponuka

Používa sa na vytváranie všetkých druhov ponúk používaných aplikáciou. Všeobecná syntax je:

w = Menu(master, option=value) master is the parameter used to represent the parent window.>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu tohto widgetu. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon

9. Combobox

Widget Combobox je vytvorený pomocou triedy ttk.Combobox z modulu tkinter.ttk. Hodnoty pre Combobox sú špecifikované pomocou parametra values. Predvolená hodnota sa nastaví pomocou metódy nastavenia. Funkcia obsluhy udalosti on_select je naviazaná na Combobox pomocou metódy väzby, ktorá aktualizuje štítok s vybratou položkou vždy, keď je vybratá položka.

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()>

Výkon

obrázok2

10. Mierka

Používa sa na poskytnutie grafického posúvača, ktorý umožňuje vybrať ľubovoľnú hodnotu z tejto stupnice. Všeobecná syntax je:

w = Scale(master, option=value)master is the parameter used to represent the parent window.>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon

jedenásť. Najvyššia úroveň

Tento widget je priamo ovládaný správcom okien. Na fungovanie nepotrebuje žiadne nadradené okno. Všeobecná syntax je:

w = TopLevel(master, option=value)>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

Python3
from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>

Výkon

12. Správa

Vzťahuje sa na viacriadkový a neupraviteľný text. Funguje rovnako ako Label. Všeobecná syntax je:

w = Message(master, option=value) master is the parameter used to represent the parent window.>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

Python3
from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>

Výkon

tlač javascript

13. Tlačidlo Menu

Je súčasťou horného menu, ktoré zostáva v okne stále. Každé tlačidlo ponuky má svoju vlastnú funkciu. Všeobecná syntax je:

w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon

14. Ukazateľ postupu

Aplikácia Tkinter s widgetom Progressbar a tlačidlom na spustenie postupu. Po kliknutí na tlačidlo sa indikátor priebehu za krátky čas zaplní na 100 %, čím sa simuluje úloha, ktorej dokončenie si vyžaduje čas.

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()>

Výkon

pokrok

pätnásť. SpinBox

Je to položka miniaplikácie „Entry“. Tu je možné zadať hodnotu výberom pevnej hodnoty čísel. Všeobecná syntax je:

w = SpinBox(master, option=value)>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

Python3
from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>

Výkon:

16. Text

Ak chcete upraviť viacriadkový text a formátovať tak, ako sa má zobraziť. Všeobecná syntax je:

w =Text(master, option=value)>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu textu. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

Python3
from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>

Výkon

kajal aggarwal

17. Plátno

Používa sa na kreslenie obrázkov a iných zložitých rozložení, ako je grafika, text a widgety. Všeobecná syntax je:

w = Canvas(master, option=value) master is the parameter used to represent the parent window.>

Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výstup

18. PannedWindow

Je to kontajnerový widget, ktorý sa používa na spracovanie množstva tabúľ v ňom usporiadaných. Všeobecná syntax je:

w = PannedWindow(master, option=value)>

Master je parameter používaný na reprezentáciu nadradeného okna. Existuje množstvo možností, ktoré sa používajú na zmenu formátu miniaplikácie. Počet možností je možné zadať ako parametre oddelené čiarkami. Niektoré z nich sú uvedené nižšie.

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()>

Výkon

Možnosť farieb v Tkinter

Tento príklad demonštruje použitie rôznych farebných možností vo widgetoch Tkinter, vrátane aktívnych farieb pozadia a popredia, farieb pozadia a popredia, farieb zakázaných stavov a farieb výberu. Každá miniaplikácia v príklade zobrazuje inú farebnú možnosť a poskytuje vizuálnu reprezentáciu toho, ako tieto možnosti ovplyvňujú vzhľad miniaplikácií.

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()>

Výkon

2024-04-2516-50-47online-video-cuttercom-ezgifcom-konvertor videa na gif

Prečítajte si viac o zlepšení písma: Písmo Tkinter

Správa geometrie

Tkinter tiež ponúka prístup ku geometrickej konfigurácii widgetov, ktoré môžu organizovať widgety v nadradených oknách. Existujú hlavne tri triedy manažérov geometrie.

metóda pack().

Pred umiestnením do nadradeného miniaplikácie organizuje widgety do blokov.

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()>

Výkon


balenie

metóda grid().

Usporiada widgety do mriežky (štruktúra podobná tabuľke) pred umiestnením do nadradeného widgetu.

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()>

Výkon

mriežka

metóda place().

Organizuje widgety tak, že ich umiestňuje na konkrétne pozície, ktoré riadi programátor.

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()>

Výkon

miesto