Tk (framework)

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Další významy jsou uvedeny na stránce TK.
Tk
Vývojář John Ousterhout
Aktuální verze 8.6.6
(27. června 2016)
Operační systém multiplatformní
Platforma multiplatformní
Vyvíjeno v C
Typ softwaru Widget toolkit
Licence BSD-style[1]
Web www.tcl.tk

Tk je svobodný multiplatformní widget toolkit s otevřenými zdrojovými kódy poskytující knihovnu základních ovládacích prvků pro tvorbu grafického uživatelského rozhraní (GUI) v různých programovacích jazycích.

Tk poskytuje množství ovládacích prvků potřebných k vytváření grafických aplikací jako například button, menu, canvas, text, rám, label, atd. Tk bylo portováno na většinu odrůd GNU/Linuxu, macOSu, Unixu a Microsoft Windows. Od verze Tcl/Tk 8 poskytuje „nativní look a feel“ (například menu a tlačítka jsou zobrazovány stejně jako u programů vyvinutých na příslušné platformě). Tk bylo navrženo jako rozšiřitelné a je dostupné množství rozšíření, která poskytují nové ovládací prvky nebo jiné funkcionality.

Verze 8.5 obsahuje nové jádro pro používání témat (theming engine), původně nazývané Tk Tile, ale nyní obecně označovaná jako „themed Tk“. Stejně jako Tcl podporuje Tk Unicode, zatím omezené na Basic Multilingual Plane. Na unixových systémech používá Tk do verze 8.4 stále bitmapové fonty, ale Tk 8.5 používá vektorové fonty (především TrueType a OpenType fonty).


Podpora programovacích jazyků[editovat | editovat zdroj]

Knihovna napsaná v jednom programovacím jazyce může být používána v jiných jazycích, jestliže pro ně existují vazby (anglicky binding); pro Tk je dispozici množství vazeb pro různé jazyky[2].

Jazykové vazby Bindings existují pro několik dalších jazyků, včetně Ady (nazývaný TASH), Haskell (nazývaný HTk), Perl, Python (nazývaný Tkinter), Ruby, Rexx a Common Lisp.

Použití[editovat | editovat zdroj]

Viz Kategorie:Software používající Tk

Historie[editovat | editovat zdroj]

Tk vytvořil John Ousterhout jako rozšíření pro skriptovací jazyk Tcl. Tk bylo poprvé zveřejněno na Internetu v roce 1991[3]. Až do verze 8.0 bylo číslování verzí Tk oddělené od Tcl.

Tk bylo původně napsáno pro Unix/X11 a v 90. letech 20. století stalo se velice oblíbené mezi programátory díky tomu, že je podstatně snazší na naučení a používání než Motif a jiné tehdejší dominantní toolkity pro X11[4]. Tk bylo ve verzi Tk 4.2 portováno také na platformy Microsoft Windows a Macintosh, a vylepšeno o nativní look and feel ve verzi Tk 8.0 (vydané v roce 1997). Snadnost použití a podpora na různých platformách spolu se snadností s jakou lze Tk a pod ním fungující interpret Tcl vestavět do jiného softwaru, z nich vytvořil de facto standardní GUI toolkit pro skriptovací jazyky.

Od konce 90. let 20. století zájem o Tk upadá. Na Unixu jeho implicitní look and feel stále emuluje Motif, přestože hlavní proud softwaru používá toolkity Qt a GTK+. Widgety, které se začaly široce používat v aplikacích (například stromy, combo boxy, tabbed notebooks), jádro Tk neposkytovalo, takže bylo nutné používat množství často konkurenčních doplňků.

Na konci roku 2007 vyšlo Tk 8.5, které napravilo některé z uvedených problémů přidáním chybějících widgetů do jádra, přineslo novou theming engine a zmodernizovalo look and feel na Unixu. Protože však bylo nutné provést určité změny kódu pro zahrnutí těchto vylepšení, mnoho existujících aplikací stále používá starší vzhled inspirovaný rozhraním Motif, díky kterému se Tk stal známým. Většina starší dokumentace na Internetu nebyla nikdy aktualizována, aby odrážela tato vylepšení, i když web TkDocs poskytuje aktuální průvodce zaměřené na moderní nejlepší praktiky.

Architektura[editovat | editovat zdroj]

Tk je platformně nezávislý GUI framework vyvinutý pro Tcl. Ve standardním interpretu Tcl – Tcl shellu (tclsh) – lze Tk zpřístupnit příkazem package require Tk. Program wish (WIndowing SHell) spuští tclsh shell v grafickém okně a zároveň zpřístupňuje Tk.

Nejvýznamnější vlastnosti Tk:

  • Platformně nezávislé: Podobně jako Tcl, je Tk interpretovaný jazyk, který byl portován na mnoho platforem a může běžet im bez modifikace.
  • Uživatelsky přizpůsobitelné: Téměř všechny vlastnosti widgetů v Tk lze upravit pomocí voleb během vytváření widgetu nebo později pomocí příkazu configure.
  • Konfigurovatelné: Množství nastavení (options) může být uloženo v databázi nastavení, což usnadňuje parametrizaci vzhledu aplikace (například barevné schéma). Znamená to, že pro uložení nastavení aplikace stačí uložit příkazy pro přidání nastavení a při načítání aplikace je provést.

V jazyce Perl lze Tk používat několika způsoby: pomocí modulů Tcl::Tk a Tkx Perl, oba z nich pro zpřístupnění Tk a Perl/Tk používají Tcl, což Perlu poskytuje nativní přístup k Tk strukturám. Python a Ruby a většina jazykové vazby pro ostatní jazyky používají Tcl jako most k Tk.

Widgety[editovat | editovat zdroj]

Tk poskytuje následující widgety:

  • button
  • canvas
  • checkbutton
  • combobox
  • entry
  • frame
  • label
  • labelframe
  • listbox
  • menu
  • menubutton
  • message
  • notebook
  • tk_optionMenu
  • panedwindow
  • progressbar
  • radiobutton
  • scale
  • scrollbar
  • separator
  • sizegrip
  • spinbox
  • text
  • treeview

Mimoto poskytuje následující okna nejvyšší úrovně:

  • tk_chooseColor – otevře dialogové okno umožňující uživateli vybrat barvu.
  • tk_chooseDirectory – otevře dialogové okno, které uživateli umožní vybrat adresář.
  • tk_dialog – vytvoří modální dialog a čeká na odezvu.
  • tk_getOpenSFile – otevře a dialogové okno, které uživateli umožní vybrat soubor, který se má otevřít.
  • tk_getSaveFile – otevře dialogové okno, které uživateli umožní zadat jméno ukládaného souboru.
  • tk_messageBox – otevře zpráva okno a čeká na odezvu uživatele.
  • tk_popup – vytvoří vyskakovací menu.
  • toplevel – vytváří a manipuluje s widgety nejvyšší úrovně.

Tk také poskytuje tři správce geometrie (anglicky geometry managers):

  • place – umisťuje widgety na absolutní pozice
  • grid – rozmisťuje widgety v tabulce (mřížce, anglicky grid)
  • pack – umisťuje widgety do volného prostoru

K neobvyklým a mnohaúčelovým vlastnostem Tk patří prvek canvas a textové prvky, které poskytují funkcionality dostupné pouze v několika málo jiných widget toolkitech.

Objektově orientované widgety jsou dostupné jako incr Tk a Iwidgets. Nad Tk je postaveno mnoho dalších užitečných widgetů, jako například TkTreeCtrl, BLT (toolkit), Tix Mega-Widgets a TSIPP (3D Graphics Toolkit).

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byly použity překlady textů z článků Tk (software) na anglické Wikipedii a Tk na ruské Wikipedii.

  1. [Tcl/Tk License Terms]
  2. Tcl Wiki | jazyky s vazbou na Tk
  3. Ousterhout, John. "Historie Tcl", 'Tcl Developer Exchange'. Retrieved on 2010-04-01.
  4. Tk Backgrounder [online]. . Dostupné online.  

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]

Tcl/Tk[editovat | editovat zdroj]

Ada/Tk[editovat | editovat zdroj]

C++/Tk[editovat | editovat zdroj]

Haskell/Tk[editovat | editovat zdroj]

  • HTk – is an encapsulation of the graphical user interface toolkit and library Tcl/Tk for the functional programming language Haskell

Lisp/Tk[editovat | editovat zdroj]

Perl/Tk[editovat | editovat zdroj]

Python/Tk[editovat | editovat zdroj]

Ruby/Tk[editovat | editovat zdroj]

SML/Tk[editovat | editovat zdroj]