logo

Python Tkinter

Python erbjuder flera alternativ för att utveckla GUI (Graphical User Interface). Av alla GUI-metoder är tkinter den mest använda metoden. Det är ett standard Python-gränssnitt till Tk GUI-verktygssatsen som levereras med Python. Python Tkinter är det snabbaste och enklaste sättet att skapa GUI-applikationer. Att skapa ett GUI med Tkinter är en enkel uppgift.

Innehållsförteckning

För att skapa en Tkinter Python-app följer du dessa grundläggande steg:



  1. Importera tkinter-modulen : Detta görs precis som att importera vilken annan modul som helst Pytonorm . Observera att i Python 2.x heter modulen 'Tkinter', medan den i Python 3.x heter 'tkinter'.
  2. Skapa huvudfönstret (behållare) : Huvudfönstret fungerar som behållare för alla GUI-element som du kommer att lägga till senare.
  3. Lägg till widgets i huvudfönstret : Du kan lägga till valfritt antal widgets som knappar, etiketter, inmatningsfält, etc., till huvudfönstret för att utforma gränssnittet efter önskemål.
  4. Tillämpa händelseutlösare på widgetarna : Du kan bifoga händelseutlösare till widgetarna för att definiera hur de svarar på användarinteraktioner.

Skapa första Tkinter GUI-applikation

Det finns två huvudsakliga metoder som används som användaren behöver komma ihåg när han skapar Python-applikationen med GUI.

java webbtjänster

Tk()

För att skapa ett huvudfönster erbjuder tkinter metoden 'Tk(skärmnamn=Inget, basnamn=Inget, klassnamn='Tk', useTk=1)'. För att ändra namnet på fönstret kan du ändra klassnamnet till önskat. Den grundläggande koden som används för att skapa programmets huvudfönster är:

mainloop()

Det finns en metod känd under namnet mainloop() som används när din applikation är redo att köras. mainloop() är en oändlig loop som används för att köra applikationen, vänta på att en händelse inträffar och bearbeta händelsen så länge fönstret inte är stängt.

Exempel

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

Produktion

img

Tkinter-widget

Det finns ett antal widgets som du kan lägga i din tkinter-applikation. Några av de viktigaste widgetarna förklaras nedan:

1. Märka

Det hänvisar till visningsrutan där du kan lägga vilken text eller bild som helst som kan uppdateras när som helst enligt koden. Den allmänna syntaxen är:

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

Produktion

märka

2. Knapp

För att lägga till en knapp i din applikation används denna widget. Den allmänna syntaxen är:

w=Button(master, option=value)>

master är parametern som används för att representera det överordnade fönstret. Det finns ett antal alternativ som används för att ändra formatet på knapparna. Antalet alternativ kan skickas som parametrar separerade med kommatecken.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()>


Produktion


3. Inträde

Den används för att mata in en rad textinmatning från användaren. För textinmatning med flera rader används textwidget. Den allmänna syntaxen är:

w=Entry(master, option=value)>

master är parametern som används för att representera det överordnade fönstret. Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

fjäderverktygssvit

4. Kontrollknapp

För att välja valfritt antal alternativ genom att visa ett antal alternativ för en användare som växlingsknappar. Den allmänna syntaxen är:

w = CheckButton(master, option=value)>

Det finns ett antal alternativ som används för att ändra formatet för denna widget. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion



5. Radio knapp

Det används för att erbjuda flervalsalternativ till användaren. Den erbjuder flera alternativ för användaren och användaren måste välja ett alternativ. Den allmänna syntaxen är:

w = RadioButton(master, option=value)>

Det finns ett antal alternativ som används för att ändra formatet för denna widget. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

6. Listbox

Den erbjuder en lista till användaren från vilken användaren kan acceptera valfritt antal alternativ. Den allmänna syntaxen är:

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

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion


7. Rullningslist

Det hänvisar till skjutkontrollern som kommer att användas för att implementera listade widgets. Den allmänna syntaxen är:

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

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

8. Meny

Den används för att skapa alla typer av menyer som används av applikationen. Den allmänna syntaxen är:

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

Det finns ett antal alternativ som används för att ändra formatet för denna widget. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

9. Kombinationsrutan

Combobox-widgeten skapas med klassen ttk.Combobox från tkinter.ttk-modulen. Värdena för Combobox anges med parametern values. Standardvärdet ställs in med inställningsmetoden. En händelsehanterarfunktion on_select är bunden till kombinationsrutan med bindningsmetoden, som uppdaterar en etikett med det valda objektet när ett objekt väljs.

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

Produktion

bild2

10. Skala

Den används för att tillhandahålla ett grafiskt skjutreglage som gör det möjligt att välja vilket värde som helst från den skalan. Den allmänna syntaxen är:

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

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

elva. Högsta nivån

Denna widget styrs direkt av fönsterhanteraren. Det behöver inget överordnat fönster för att fungera på. Den allmänna syntaxen är:

w = TopLevel(master, option=value)>

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

12. Meddelande

Det hänvisar till den flerradiga och icke-redigerbara texten. Det fungerar på samma sätt som Label. Den allmänna syntaxen är:

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

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

13. Menyknapp

Det är en del av top-down-menyn som stannar i fönstret hela tiden. Varje menyknapp har sin egen funktionalitet. Den allmänna syntaxen är:

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

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

14. Förloppsindikator

Tkinter-applikation med en Progressbar-widget och en knapp för att starta förloppet. När du klickar på knappen fylls förloppsindikatorn upp till 100 % under en kort period, vilket simulerar en uppgift som tar tid att slutföra.

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

Produktion

framsteg

femton. SpinBox

Det är en post för 'Entry'-widgeten. Här kan värde matas in genom att välja ett fast värde på siffror. Den allmänna syntaxen är:

w = SpinBox(master, option=value)>

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion:

16. Text

För att redigera en flerradstext och formatera så som den måste visas. Den allmänna syntaxen är:

w =Text(master, option=value)>

Det finns ett antal alternativ som används för att ändra formatet på texten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

17. Duk

Den används för att rita bilder och annan komplex layout som grafik, text och widgets. Den allmänna syntaxen är:

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

Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Det är en containerwidget som används för att hantera antalet rutor som är arrangerade i den. Den allmänna syntaxen är:

w = PannedWindow(master, option=value)>

Master är parametern som används för att representera det överordnade fönstret. Det finns ett antal alternativ som används för att ändra formatet på widgeten. Antalet alternativ kan skickas som parametrar separerade med kommatecken. Några av dem är listade nedan.

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

Produktion

Färgalternativ i Tkinter

Det här exemplet visar användningen av olika färgalternativ i Tkinter-widgets, inklusive aktiva bakgrunds- och förgrundsfärger, bakgrunds- och förgrundsfärger, inaktiverade tillståndsfärger och urvalsfärger. Varje widget i exemplet visar olika färgalternativ, vilket ger en visuell representation av hur dessa alternativ påverkar utseendet på widgetarna.

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

Produktion

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

Läs mer för att förbättra teckensnittet: Tkinter teckensnitt

Geometrihantering

Tkinter erbjuder också tillgång till den geometriska konfigurationen av widgetarna som kan organisera widgetarna i de överordnade fönstren. Det finns huvudsakligen tre klasser för geometrihanterare.

pack() metod

Den organiserar widgetarna i block innan de placeras i den överordnade widgeten.

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

Produktion


packa

grid() metod

Den organiserar widgetarna i rutnät (tabellliknande struktur) innan de placeras i den överordnade widgeten.

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

Produktion

rutnät

place() metod

Den organiserar widgetarna genom att placera dem på specifika positioner som styrs av programmeraren.

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

Produktion

plats