Tkinter

Tkinter – biblioteka Pythona umożliwiająca tworzenie interfejsu graficznego (GUI). Tkinter jest dołączony do standardowych instalacji Pythona w systemach Linux, Microsoft Windows i Mac OS X[1].

Nazwa Tkinter pochodzi od interfejsu Tk. Biblioteka ta została napisana przez Fredrika Lundha[2].

Tkinter to darmowe oprogramowanie wydane na licencji Pythona[3].

Opis

Podobnie jak w przypadku większości innych współczesnych powiązań Tk, Tkinter jest implementowany jako opakowanie Pythona wokół pełnego interpretera Tcl osadzonego w interpreterze tego języka. Wywołania tej biblioteki są tłumaczone na polecenia Tcl, które są przekazywane do wbudowanego interpretera, umożliwiając w ten sposób mieszanie Pythona i Tcl w jednej aplikacji[1].

Dostępnych jest kilka popularnych, alternatywnych bibliotek GUI, takich jak wxPython, PyQt, PySide, Pygame, Pyglet i PyGTK.

Widżety

Ogólny termin określający dowolny z bloków konstrukcyjnych, które składają się na aplikację w interfejsie graficznym.

  • Widżety podstawowe: Kontenery: frame, labelframe, toplevel, paned window. Przyciski: button, radiobutton, checkbutton (checkbox) i menubutton. Widżety tekstowe: label, message, text. Widżety wejścia: scale, scrollbar, listbox, slider, spinbox, entry (pojedyncza linia), optionmenu, text (wiele wierszy) i canvas (wektorowa i pixelowa grafika)[2].
  • Tkinter udostępnia trzy moduły, które umożliwiają wyświetlanie wyskakujących okien dialogowych: tk.messagebox (potwierdzenia, informacje, ostrzeżenia i okna dialogowe błędów), tk.filedialog (pojedynczy plik, wiele okien dialogowych wyboru plików i katalogów) i tk.colorchooser (próbnik kolorów)[2].

Przykładowy kod

# !/usr/bin/env python3
import tkinter as tk

class Aplikacja(tk.Frame):

    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        self.grid()
        self.createWidgets()

    def createWidgets(self):
        self.przykladowaEtykieta = tk.Label(self, text='Witaj Świecie')
        self.przykladowaEtykieta.config(bg="#00ffff")
        self.przykladowaEtykieta.grid()
        self.quitButton = tk.Button(self, text='Zakończ', command=self.quit)
        self.quitButton.grid()

app = Aplikacja()
app.master.title('Przykładowa Aplikacja')
app.mainloop()

Linia 2: Importuje moduł tkinter (jako tk).

Linia 4: Tworzy klasę Aplikacja, która dziedziczy po tk.Frame.

Linia 6: Konstruktor.

Linia 7: Wywołuje konstruktor dla klasy nadrzędnej (tk.Frame).

Linia 11: Definiuje widżety.

Linia 12: Tworzy etykietę o nazwie przykladowaEtykieta z tekstem „Witaj Świecie”.

Linia 13: Ustawia kolor tła przykladowaEtykieta na cyjan.

Linia 14: Umieszcza etykietę w aplikacji (przy użyciu metody Grid).

Linia 15: Tworzy przycisk z tekstem „Zakończ”.

Linia 16: Umieszcza przycisk w aplikacji.

Linia 18: Przypisuje zmiennej app klasę Aplikacja.

Linia 19: Ustawia tytuł okna na Przykładowa Aplikacja.

Linia 20: Uruchamia aplikacje.

Powyższy kod jest napisany w Python 3, w Python 2 wyglądałby tak samo, oprócz tego, że tkinter byłby napisany od wielkiej litery.

Zobacz też

Przypisy

  1. a b tkinter – Python interface to Tcl/Tk – Python 3.9.2 documentation, docs.python.org [dostęp 2021-03-01].
  2. a b c Python – GUI Programming (Tkinter) – Tutorialspoint, www.tutorialspoint.com [dostęp 2021-03-01].
  3. Tkinter – Tkinter Wiki, web.archive.org, 13 listopada 2013 [dostęp 2021-03-01] [zarchiwizowane z adresu 2013-11-13].