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(inne języki)[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(inne języki), 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ż

  • Python
  • Tk

Przypisy

  1. a b tkinter – Python interface to Tcl/Tk – Python 3.9.2 documentation [online], docs.python.org [dostęp 2021-03-01] .
  2. a b c Python – GUI Programming (Tkinter) – Tutorialspoint [online], www.tutorialspoint.com [dostęp 2021-03-01] .
  3. Tkinter – Tkinter Wiki [online], web.archive.org, 13 listopada 2013 [dostęp 2021-03-01] [zarchiwizowane z adresu 2013-11-13] .
  • p
  • d
  • e
Biblioteki graficzne
Niskopoziomowe
  • Macintosh Toolbox/Carbon
  • Intrinsics
  • Intuition
  • Windows API
  • Xlib
  • XCB
Wysokopoziomowe
Na AmigaOS
  • BOOPSI
  • MUI
  • ReAction GUI
  • Zune
Na macOS
  • Carbon
  • Cocoa
  • MacApp
  • MacZoop
  • PowerPlant
Na Windows
Na Unix,
bez X11
  • Athena (Xaw)
  • InterViews
  • LessTif
  • Motif
  • OPEN LOOK
Wieloplatformowe,
według języka
CLI
  • Gtk#
  • Moonlight
  • Tao
C
Objective-C
  • GNUstep
C++
Flash
  • Apache Flex
Java
Desktop
Web
JavaScript
Common Lisp
  • CAPI
  • Common Graphics
  • CLIM
  • Ltk
  • McCLIM
Pascal
  • LCL
Object Pascal
  • CLX
  • fpGUI
  • IP Pascal
  • LCL
Perl
  • wxPerl
  • Perl/Tk
PHP
Python
Ruby
  • Shoes
  • QtRuby
XML
  • Ample SDK
  • CougarXML
  • GladeXML
  • Lively Kernel
  • Pyjamas
  • Rialto Toolkit
  • XAML
  • XUI
  • XUL
  • Wt