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:

tkinter fönster

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.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow