tkinter Handledning
Komma igång med tkinter
Sök…
Anmärkningar
Tkinter (" Tk Inter face") är pythons standardkorsplattformspaket för att skapa grafiska användargränssnitt (GUI). Det ger åtkomst till en underliggande Tcl-tolk med Tk-verktygssatsen, som i sig är ett tvärplattformigt, flerspråkigt grafiskt användargränssnittsbibliotek.
Tkinter är inte det enda GUI-biblioteket för python, men det är det som kommer som standard. Ytterligare GUI-bibliotek som kan användas med python inkluderar wxPython , PyQt och kivy .
Tkinter största styrka är dess allestädes närhet och enkelhet. Det fungerar ut ur rutan på de flesta plattformar (linux, OSX, Windows) och levereras komplett med ett brett utbud av widgetar som är nödvändiga för de vanligaste uppgifterna (knappar, etiketter, ritningsduk, multiline text, etc.).
Som ett inlärningsverktyg har tkinter vissa funktioner som är unika bland GUI-verktygssatser, såsom namngivna teckensnitt, bindetaggar och variabel spårning.
Skillnader mellan python 2 och 3
Tkinter är i stort sett oförändrat mellan python 2 och python 3, med den största skillnaden är att tkinter-paketet och modulerna byttes namn.
Importerar i python 2.x
I python 2.x heter tkinter-paketet Tkinter
, och relaterade paket har sina egna namn. Följande visar exempelvis en typisk uppsättning importmeddelanden för python 2.x:
import Tkinter as tk
import tkFileDialog as filedialog
import ttk
Importerar i python 3.x
Även om funktionaliteten inte ändrade mycket mellan python 2 och 3, har namnen på alla tkinter-moduler ändrats. Följande är en typisk uppsättning importmeddelanden för python 3.x:
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
Vidare läsning
versioner
tcl
Version | Utgivningsdatum |
---|---|
8,6 | 2016/07/27 |
8,5 | 2016/02/12 |
8,4 | 2013/06/01 |
8,3 | 2002-10-18 |
8,2 | 1999-12-16 |
8,1 | 1999/05/26 |
8,0 | 1999/03/09 |
Pytonorm
Version | Utgivningsdatum |
---|---|
3,6 | 2016/12/23 |
3,5 | 2015/09/13 |
3,4 | 2014/03/17 |
3,3 | 2012/09/29 |
3,2 | 2011-02-20 |
3,1 | 2009-06-26 |
3,0 | 2008-12-03 |
2,7 | 2010-07-03 |
2,6 | 2008-10-02 |
2,5 | 2006-09-19 |
2,4 | 2004-11-30 |
2,3 | 2003-07-29 |
2,2 | 2001-12-21 |
2,1 | 2001/04/15 |
2,0 | 2000/10/16 |
Installation eller installation
Tkinter levereras förinstallerat med Python-installationsbinarierna för Mac OS X och Windows-plattformen. Så om du installerar Python från de officiella binärerna för Mac OS X eller Windows-plattformen, är du bra att gå med Tkinter.
För Debian-versioner av Linux måste du installera den manuellt med följande kommandon.
För Python 3
sudo apt-get install python3-tk
För Python 2.7
sudo apt-get install python-tk
Linux-distros med yum-installationsprogrammet kan installera tkinter-modulen med kommandot:
yum installera tkinter
Verifierar installationen
För att verifiera om du har installerat Tkinter, öppna din Python-konsol och skriv följande kommando:
import tkinter as tk # for Python 3 version
eller
import Tkinter as tk # for Python 2.x version
Du har installerat Tkinter om kommandot ovan körs utan fel.
För att kontrollera Tkinter-versionen skriver du följande kommandon i din Python REPL:
För python 3.X
import tkinter as tk
tk._test()
För python 2.X
import Tkinter as tk
tk._test()
Obs: Importera Tkinter as tk
krävs inte men är bra praxis eftersom det hjälper till att hålla saker konsekventa mellan versionen.
Hej världen! (minimal)
Låt oss testa vår grundläggande kunskap om tkinter genom att skapa klassikern "Hej, världen!" program.
Först måste vi importera tkinter, detta kommer att variera baserat på version (se kommentarer avsnitt om "Skillnader mellan Python 2 och 3")
I Python 3 har modulen tkinter
en liten bokstav t:
import tkinter as tk
I Python 2 har modulen Tkinter
en stor bokstav T:
import Tkinter as tk
Att använda as tk
är inte absolut nödvändigt men vi kommer att använda det så att resten av det här exemplet fungerar på samma sätt för båda versionerna.
nu när vi har importerat tkinter-modulen kan vi skapa roten till vår applikation med Tk
klassen:
root = tk.Tk()
Detta kommer att fungera som fönstret för vår applikation. (Observera att ytterligare fönster ska vara Toplevel
instanser istället)
Nu när vi har ett fönster, låt oss lägga till text till det med en Label
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
När ansökan är klar kan vi starta den (gå in i slinga) med mainloop
metoden
root.mainloop()
Detta kommer att öppna och köra applikationen tills det stoppas av att fönstret stängs eller ringer ut avslutande funktioner från återuppringningar (diskuteras senare) som root.destroy()
.
Sätta ihop allting:
import tkinter as tk # Python 3.x Version
#import Tkinter as tk # Python 2.x Version
root = tk.Tk()
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
root.mainloop()
Och något liknande borde dyka upp:
Hej världen! (modulär, objektorienterad)
import tkinter as tk
class HelloWorld(tk.Frame):
def __init__(self, parent):
super(HelloWorld, self).__init__(parent)
self.label = tk.Label(self, text="Hello, World!")
self.label.pack(padx=20, pady=20)
if __name__ == "__main__":
root = tk.Tk()
main = HelloWorld(root)
main.pack(fill="both", expand=True)
root.mainloop()
Obs: Det är möjligt att ärva från nästan vilken tkinter-widget som helst, inklusive rotfönstret. Arv från tkinter.Frame
är i alla fall utan tvekan det mest flexibla genom att det stöder flera dokumentgränssnitt (MDI), enkel dokumentgränssnitt (SDI), applikationer på en sida och applikationer på flera sidor.