Python ofereix múltiples opcions per desenvolupar GUI (Graphical User Interface). De tots els mètodes GUI, tkinter és el mètode més utilitzat. És una interfície estàndard de Python per al conjunt d'eines de la GUI Tk que s'envia amb Python. Python Tkinter és la manera més ràpida i senzilla de crear aplicacions GUI. Crear una GUI amb Tkinter és una tasca fàcil.
Taula de contingut
- Creeu la primera aplicació GUI de Tkinter
- Giny Tkinter
- Opció de color i tipus de lletra a Tkinter
- Gestió de la Geometria
Per crear una aplicació Tkinter Python, seguiu aquests passos bàsics:
- Importa el mòdul tkinter : Això es fa igual que importar qualsevol altre mòdul Python . Tingueu en compte que a Python 2.x, el mòdul s'anomena 'Tkinter', mentre que a Python 3.x, s'anomena 'tkinter'.
- Crea la finestra principal (contenidor) : La finestra principal serveix com a contenidor per a tots els elements de la GUI que afegireu més endavant.
- Afegiu ginys a la finestra principal : podeu afegir qualsevol nombre de ginys com botons, etiquetes, camps d'entrada, etc., a la finestra principal per dissenyar la interfície com vulgueu.
- Apliqueu activadors d'esdeveniments als ginys : podeu adjuntar activadors d'esdeveniments als ginys per definir com responen a les interaccions dels usuaris.
Creeu la primera aplicació GUI de Tkinter
Hi ha dos mètodes principals utilitzats que l'usuari ha de recordar mentre crea l'aplicació Python amb GUI.
javable
Tk()
Per crear una finestra principal, tkinter ofereix un mètode 'Tk(screenName=None, baseName=None, className='Tk', useTk=1)'. Per canviar el nom de la finestra, podeu canviar el className pel que vulgueu. El codi bàsic utilitzat per crear la finestra principal de l'aplicació és:
mainloop()
Hi ha un mètode conegut amb el nom mainloop() que s'utilitza quan la vostra aplicació està a punt per executar-se. mainloop() és un bucle infinit utilitzat per executar l'aplicació, esperar que es produeixi un esdeveniment i processar l'esdeveniment sempre que la finestra no estigui tancada.
Exemple
Python 3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Sortida

Giny Tkinter
Hi ha una sèrie de ginys que podeu posar a la vostra aplicació tkinter. A continuació s'expliquen alguns dels ginys principals:
1. Etiqueta
Es refereix al quadre de visualització on podeu posar qualsevol text o imatge que es pugui actualitzar en qualsevol moment segons el codi. La sintaxi general és:
w=Label(master, option=value) master is the parameter used to represent the parent window.>Python 3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>
Sortida

2. Botó
Per afegir un botó a la vostra aplicació, s'utilitza aquest widget. La sintaxi general és:
w=Button(master, option=value)>
master és el paràmetre utilitzat per representar la finestra pare. Hi ha diverses opcions que s'utilitzen per canviar el format dels botons. El nombre d'opcions es pot passar com a paràmetres separats per comes.Python 3>
>
> 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()>
Sortida

3. Entrada
S'utilitza per introduir l'entrada de text d'una sola línia de l'usuari. Per a l'entrada de text de diverses línies, s'utilitza el giny de text. La sintaxi general és:
w=Entry(master, option=value)>
master és el paràmetre utilitzat per representar la finestra pare. Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida
bash for loop

4. Botó de verificació
Per seleccionar qualsevol nombre d'opcions mostrant un nombre d'opcions a un usuari com a botons de commutació. La sintaxi general és:
w = CheckButton(master, option=value)>
Hi ha diverses opcions que s'utilitzen per canviar el format d'aquest widget. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

5. Botó de ràdio
S'utilitza per oferir una opció d'opció múltiple a l'usuari. Ofereix diverses opcions a l'usuari i l'usuari ha de triar una opció. La sintaxi general és:
w = RadioButton(master, option=value)>
Hi ha diverses opcions que s'utilitzen per canviar el format d'aquest widget. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

6. Caixa de llista
Ofereix una llista a l'usuari des de la qual l'usuari pot acceptar qualsevol nombre d'opcions. La sintaxi general és:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

7. Barra de desplaçament
Es refereix al controlador de diapositives que s'utilitzarà per implementar ginys llistats. La sintaxi general és:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

8. Menú
S'utilitza per crear tot tipus de menús utilitzats per l'aplicació. La sintaxi general és:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Hi ha diverses opcions que s'utilitzen per canviar el format d'aquest widget. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

9. Quadre combinat
El widget Combobox es crea utilitzant la classe ttk.Combobox del mòdul tkinter.ttk. Els valors per al quadre combinat s'especifiquen mitjançant el paràmetre values. El valor predeterminat s'estableix mitjançant el mètode set. Una funció de gestor d'esdeveniments on_select s'enllaça al Combobox mitjançant el mètode bind, que actualitza una etiqueta amb l'element seleccionat sempre que se selecciona un element.
Python 3 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()> Sortida

10. Escala
S'utilitza per proporcionar un control lliscant gràfic que permet seleccionar qualsevol valor d'aquesta escala. La sintaxi general és:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

11. Nivell més alt
Aquest giny està controlat directament pel gestor de finestres. No necessita cap finestra principal per treballar. La sintaxi general és:
w = TopLevel(master, option=value)>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()> Sortida

12. Missatge
Es refereix al text multilínia i no editable. Funciona igual que el de Label. La sintaxi general és:
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Sortida

13. Botó de menú
És una part del menú de dalt a baix que es manté a la finestra tot el temps. Cada botó de menú té la seva pròpia funcionalitat. La sintaxi general és:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

14. Barra de progrés
Aplicació Tkinter amb un giny de la barra de progrés i un botó per iniciar el progrés. Quan es fa clic al botó, la barra de progrés s'omple fins al 100% en un període curt, simulant una tasca que triga temps a completar-se.
Python 3 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()> Sortida

15. SpinBox
És una entrada del giny 'Entrada'. Aquí, el valor es pot introduir seleccionant un valor fix de nombres. La sintaxi general és:
llista de creació de java
w = SpinBox(master, option=value)>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Sortida:

16. Text
Per editar un text de diverses línies i donar format a la manera com s'ha de mostrar. La sintaxi general és:
w =Text(master, option=value)>
Hi ha diverses opcions que s'utilitzen per canviar el format del text. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Sortida

17. Tela
S'utilitza per dibuixar imatges i altres dissenys complexos com gràfics, text i ginys. La sintaxi general és:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

18. PannedWindow
És un giny de contenidor que s'utilitza per gestionar el nombre de panells disposats en ell. La sintaxi general és:
w = PannedWindow(master, option=value)>
Mestre és el paràmetre utilitzat per representar la finestra pare. Hi ha diverses opcions que s'utilitzen per canviar el format del giny. El nombre d'opcions es pot passar com a paràmetres separats per comes. Alguns d'ells s'enumeren a continuació.
Python 3 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()>
Sortida

Opció de color a Tkinter
Aquest exemple demostra l'ús de diverses opcions de color als ginys de Tkinter, inclosos els colors actius de fons i primer pla, colors de fons i primer pla, colors d'estat desactivats i colors de selecció. Cada widget de l'exemple mostra una opció de color diferent, proporcionant una representació visual de com aquestes opcions afecten l'aparença dels widgets.
java ordenant una llistaPython 3
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()> Sortida

Més informació per millorar el tipus de lletra: Tkinter Font
Gestió de la Geometria
Tkinter també ofereix accés a la configuració geomètrica dels ginys que poden organitzar-los a les finestres pare. Hi ha principalment tres classes de classes de gestor de geometria.
mètode pack().
Organitza els ginys en blocs abans de col·locar-los al giny principal.
Python 3 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()> Sortida

mètode grid().
Organitza els ginys en quadrícula (estructura semblant a una taula) abans de col·locar-los al giny principal.
Python 3 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()> Sortida

mètode place().
Organitza els ginys col·locant-los en posicions específiques dirigides pel programador.
Python 3 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()> Sortida
