logo

Python Tkinter

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

Per crear una aplicació Tkinter Python, seguiu aquests passos bàsics:



  1. 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'.
  2. 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.
  3. 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.
  4. 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

img

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

etiqueta

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

imatge 2

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

progrés, progressar

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 llista
Python 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

2024-04-2516-50-47en-line-video-cuttercom-ezgifcom-conversor-de-vídeo-a-gif

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


paquet

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

graella

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

lloc