Börja skapa skrivbordsappar i Python med Tkinter GUI Library
Tkinter är ett grafiskt användargränssnitt (GUI) verktygslåda som du bör prova om du vill utforska kraften i Python när du skapar skrivbordsappar.
Här tar vi en titt på grunderna i Tkinter GUI-modulen.
Tkinter-inställning
Vanligtvis behöver du inte installera tkinter separat om du har installerat en senare version av Python, från och med Python 3. Biblioteket kanske inte fungerar med gamla Python-versioner, dock. Detta är ett vanligt problem för Mac- och Linux-användare, eftersom dessa operativsystem vanligtvis kommer med äldre versioner av Python som standard.
I allmänhet, att använda tkinter se till att du laddar ner och installerar den senaste kompatibla versionen av Python på din PC från den officiella python.org-webbplatsen.
Om du använder Mac kan du alternativt ladda ner den senaste versionen av ActiveTcl, en tkinter kompilator från ActiveState.
Hur man använder Tkinter
Tkinter beror på dess inbyggda TK klass. Och det sammanfattar alla händelser inom GUI i en huvudslinga. Alltså huvudslinga omslag gör din tkinter kod körbar.
Att komma igång med tkinter:
from tkinter import Tk Tk().mainloop()
Att köra koden ovan snurrar upp en tom tkinter ram.
Anpassningsfunktionerna hos Tkinter finns dock i dess inbyggda widgets.
För att använda dessa widgetar kan du importera dem från tkinter genom att byta ut från tkinter import Tk med:
from tkinter import * t = Tk() t.mainloop()
Du kan också justera fönsterstorleken med geometri funktionen och ange sedan en titel med hjälp av titel widget av tkinter:
t = Tk() t.geometry("600x600") t.title("Tk Tutorial") t.mainloop()
Tkinter Label Widget
Tkinter låter dig skriva vanlig text direkt till GUI med hjälp av Märka widget:
t = Tk() Label(t, text = "MUO Tkinter tutorial").grid() t.mainloop()
De rutnät() Metoden är dock ett alternativ till packa() metod. Det fäster dina widgets till GUI, vilket gör dem synliga.
Du kan också ange ett teckensnitt för din Märka text:
t = Tk() Label(t, text = "MUO Tkinter tutorial", font=(60)).grid() t.mainloop()
Arbeta med knappwidgetarna i Tkinter
Knappar är några av de mest använda widgetarna i tkinter. Och du kan lägga till dessa klickbara knappar till ditt GUI med hjälp av de olika inbyggda knappwidgetarna.
Så här lägger du till en primär knapp i ditt GUI med hjälp av Knapp widget:
t = Tk() Button(t, text = "Clickable", bg = "black", fg = "white").grid() t.mainloop()
De bg och fg nyckelord beskriver bakgrundsfärgen på knappen respektive färgen på texten i den.
En valfri kommando nyckelordet lägger dock till händelser till Knapp widget. I huvudsak förankrar den en valfri funktion som hanterar vissa händelser när du klickar på en knapp.
Koden nedan multiplicerar till exempel värdet på varje knapp med 6 när du klickar på den. Och den är baserad på en fördefinierad funktion:
I ovanstående kod, knapptryckning hanterar multiplikationshändelsen. De Knapp widgeten pekar sedan på den händelsehanteraren med en anonym lambda fungera.
Och om du är orolig pady nyckelord, skiljer det tydligt åt varje knapp över raden. Ersätter detta med padx separerar knapparna över kolumnen. Och du kan använda båda nyckelorden samtidigt för att separera knapparna över båda axlarna som du vill.
Som sagt, du vill inte återuppfinna hjulet för varje knapp som du gjorde i föregående kod. Detta saktar ner exekveringstiden, plus det gör din kod svår att läsa och begränsa.
Men du kan använda en for-loop för att undvika denna upprepning.
Så här är en kortare och bättre version av ovanstående kod:
def buttonpress(r): r = 6*r Label(t, text = r, font = (60)).grid(row = 5, column = 2) t = Tk() a = [1, 4, 6, 7] for i in a: j = lambda y = i:buttonpress(y) Button(t, text = i, bg = "black", fg = "white", width = 10, height = 2, command=j).grid(row = i, column = 1, pady = 6) t.mainloop()
Menyknappar och kontrollknappar
Låt oss ytterligare utforska kraften i för loop för att lägga till menyknappar till ditt GUI:
from tkinter import * t = Tk() buttons = ["Files", "Dashboard", "Menu", "Settings", "Help"] m = 0 for i in range(len(buttons)): # Get each text in the buttons array using a list index as m increases. # Then let the column increase by 1 through the length of the array: Menubutton(t, text=buttons[m], bg="blue", fg="white").grid(row=5, column=i) m += 1 t.mainloop()
Att lägga till kontrollknappar till ditt GUI är också ganska enkelt:
t = Tk() Checkbutton(t, text = "Select option").grid() t.mainloop()
Känna free för att multiplicera den kryssknappen med hjälp av för loop, som vi gjorde tidigare.
De Meny widget låter dig designa klickbara rullgardinsmenyer i tkinter.
Som tidigare nämnts, tkinter erbjuder många widgetalternativ. Och du kommer att använda några av dem när du utformar din rullgardinsmeny.
Här är några av de vanliga widgetalternativen som du kommer att stöta på när du gör en rullgardinsmeny:
add_cascade: Den visar en menyetikett och fäster den där den hör hemma. add_separator: Den avgränsar undermenyer och grupperar dem i övre och nedre undermenyer. add_command: Det är här du ger din undermeny ett namn. I slutändan accepterar den ett kommandoargument där du kan ange en händelsehanterare.
Här är ett rullgardinsexempel som använder dessa tre alternativ:
from tkinter import * t = Tk() fileOptions = ["New", "open", "Save", "Save as"] fileOptionsAfterseparator = ["Import", "Export", "Exit"] viewOptions = ["Transform", "Edit", "Create"] menuBar = Menu
Se hur det ser ut:
En Alternativmeny, till skillnad från Meny rullgardinsmenyn, byter dess etikett till ett valt alternativ.
Även om du kan ange ett standardetikettvärde för en alternativmeny, har den ingen etikett som standard.
Så här skapar du en alternativmeny i tkinter:
t = Tk() Omenu = StringVar() #set the variable type of the options Omenu.set("MUO") #specify a default value for the menu icon OptionMenu(t, Omenu, "MUO", "Amazon", "Tutorial").grid() t.mainloop()
Bygg en återanvändbar skrivbordsapp med Tkinter
Tkinter erbjuder en rad funktioner som hjälper dig att skapa interaktiva GUI-skrivbordsappar. Även om det kanske inte har många flexibla försköningsfunktioner som vissa andra Python GUI-moduler, är det fortfarande ett praktiskt verktyg värt att utforska. Och medan exemplen här bara visar några av de grundläggande begreppen, tkinter erbjuder mer avancerade funktioner som du kan prova.
Som sagt, du kan bygga en GUI-skrivbordskalkylator, göra en minitextredigerare eller till och med skapa en GUI-skrivbordsapp för att hantera dina inventarier. Om du vill sprida dina vingar och bli ett skrivbords-GUI-huvud, kan du till och med kolla in andra GUI-moduler i Python.
Om författaren
Idowu Omisola (124 artiklar publicerade)
Idowu brinner för allt smart teknik och produktivitet. I hans free tid, han leker med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig loss från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.
Mer från Idowu Omisola
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!