tkinter Samouczek
Rozpoczęcie pracy z Tkinter
Szukaj…
Uwagi
Tkinter („ Tk Inter face”) to standardowy wieloplatformowy pakiet Pythona do tworzenia graficznych interfejsów użytkownika (GUI). Zapewnia dostęp do bazowego interpretera Tcl za pomocą zestawu narzędzi Tk, który sam jest wieloplatformową, wielojęzyczną graficzną biblioteką interfejsu użytkownika.
Tkinter nie jest jedyną biblioteką GUI dla Pythona, ale jest standardową wersją. Dodatkowe biblioteki GUI, których można używać z Pythonem, to wxPython , PyQt i kivy .
Największą siłą Tkintera jest wszechobecność i prostota. Działa od razu na większości platform (Linux, OSX, Windows) i jest wyposażony w szeroki zakres widżetów niezbędnych do większości typowych zadań (przyciski, etykiety, płótno rysunkowe, tekst wielowierszowy itp.).
Jako narzędzie do nauki, tkinter ma pewne funkcje, które są unikalne wśród zestawów narzędzi GUI, takie jak nazwane czcionki, znaczniki powiązań i śledzenie zmiennych.
Różnice między python 2 i 3
Tkinter jest w dużej mierze niezmieniony między Pythonem 2 i Pythonem 3, przy czym główna różnica polega na zmianie nazwy pakietu i modułów Tkintera.
Importowanie w python 2.x
W Pythonie 2.x pakiet tkinter nosi nazwę Tkinter
, a powiązane pakiety mają swoje własne nazwy. Na przykład poniżej pokazano typowy zestaw instrukcji importu dla Pythona 2.x:
import Tkinter as tk
import tkFileDialog as filedialog
import ttk
Importowanie do Pythona 3.x
Chociaż funkcjonalność niewiele się zmieniła między python 2 i 3, nazwy wszystkich modułów tkinter uległy zmianie. Poniżej przedstawiono typowy zestaw instrukcji importu dla Pythona 3.x:
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
Dalsza lektura
Wersje
Tcl
Wersja | Data wydania |
---|---|
8.6 | 2016-07-27 |
8.5 | 2016-02-12 |
8.4 | 01.06.2013 |
8.3 | 2002-10-18 |
8.2 | 1999-12-16 |
8.1 | 1999-05-26 |
8.0 | 1999-03-09 |
Pyton
Wersja | Data wydania |
---|---|
3.6 | 23.12.2016 |
3.5 | 13.09.2015 |
3.4 | 17.03.2014 |
3.3 | 29.09.2012 |
3.2 | 2011-02-20 |
3.1 | 26.06.2009 |
3.0 | 2008-12-03 |
2.7 | 2010-07-03 |
2.6 | 02.10.2008 |
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 |
Instalacja lub konfiguracja
Tkinter jest fabrycznie zainstalowany z plikami binarnymi instalatora Python dla systemu Mac OS X i platformy Windows. Jeśli więc zainstalujesz Python z oficjalnych plików binarnych na Mac OS X lub platformę Windows, dobrze jest wybrać Tkinter.
W wersjach systemu Linux Debian musisz zainstalować go ręcznie, używając następujących poleceń.
Dla Python 3
sudo apt-get install python3-tk
Dla Python 2.7
sudo apt-get install python-tk
Dystrybutorzy systemu Linux z instalatorem yum mogą zainstalować moduł tkinter za pomocą polecenia:
mniam zainstaluj tkinter
weryfikowanie instalacji
Aby sprawdzić, czy Tkinter został pomyślnie zainstalowany, otwórz konsolę Python i wpisz następujące polecenie:
import tkinter as tk # for Python 3 version
lub
import Tkinter as tk # for Python 2.x version
Pomyślnie zainstalowałeś Tkinter, jeśli powyższe polecenie zostanie wykonane bez błędu.
Aby sprawdzić wersję Tkinter, wpisz następujące polecenia w Python REPL:
Dla python 3.X
import tkinter as tk
tk._test()
Dla python 2.X
import Tkinter as tk
tk._test()
Uwaga: Importowanie Tkinter as tk
nie jest wymagane, ale jest dobrą praktyką, ponieważ pomaga zachować spójność między wersjami.
Witaj świecie! (minimalny)
Przetestujmy naszą podstawową wiedzę na temat tkinter, tworząc klasyczne „Witaj, świecie!” program.
Najpierw musimy zaimportować tkinter, będzie się to różnić w zależności od wersji (zobacz sekcję uwag na temat „Różnice między Pythonem 2 a 3”)
W Pythonie 3 moduł tkinter
ma małą literę t:
import tkinter as tk
W Pythonie 2 moduł Tkinter
ma wielką literę T:
import Tkinter as tk
Używanie as tk
nie jest absolutnie konieczne, ale użyjemy go, więc reszta tego przykładu będzie działać tak samo dla obu wersji.
teraz, gdy mamy zaimportowany moduł tkinter, możemy utworzyć katalog główny naszej aplikacji za pomocą klasy Tk
:
root = tk.Tk()
Będzie to działać jako okno dla naszej aplikacji. (pamiętaj, że zamiast tego dodatkowe okna powinny być instancjami Toplevel
)
Teraz, gdy mamy okno, dodajmy do niego tekst z Label
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
Gdy aplikacja jest gotowa, możemy ją uruchomić (wejść do głównej pętli zdarzeń) metodą mainloop
root.mainloop()
Spowoduje to otwarcie i uruchomienie aplikacji do momentu zatrzymania przez zamknięcie okna lub wywołanie funkcji wychodzących z wywołań zwrotnych (omówionych później), takich jak root.destroy()
.
Kładąc wszystko razem:
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()
I powinno pojawić się coś takiego:
Witaj świecie! (modułowy, obiektowy)
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()
Uwaga: Możliwe jest dziedziczenie z dowolnego widżetu tkinter, w tym z okna głównego. Dziedziczenie po tkinter.Frame
jest co najmniej prawdopodobnie najbardziej elastyczny, ponieważ obsługuje wiele interfejsów dokumentów (MDI), interfejsy pojedynczych dokumentów (SDI), aplikacje na jednej stronie i aplikacje na wiele stron.