www.wikidata.de-de.nina.az
Tk ist ein freies plattformubergreifendes GUI Toolkit zur Programmierung von grafischen Benutzeroberflachen GUIs TkBasisdatenMaintainer Tcl Core Team 1 Entwickler John OusterhoutErscheinungsjahr 1991 2 Aktuelle Version 8 6 13 3 2022 11 22 Aktuelle Vorabversion 8 7a5 4 2021 06 18 Betriebssystem plattformubergreifendProgrammiersprache C 5 Kategorie GUI ToolkitLizenz BSD Lizenzdeutschsprachig neinwww tcl tk Inhaltsverzeichnis 1 Geschichte 2 Verwendung 3 Sprachanbindungen 4 Widgets 5 Geometriemanager 6 Beispiele 7 Weblinks 8 EinzelnachweiseGeschichte BearbeitenTk wurde von John Ousterhout seit 1988 als Erweiterung fur die Scriptsprache Tcl entwickelt da er jedoch nur nebenbei an der Software arbeitete wurde sie erst 1991 veroffentlicht 6 Geschrieben wurde Tk primar fur Unix X11 mittlerweile ist es cross plattform kompatibel und somit auch unter MacOS und Windows lauffahig Durch die damalige weite Verbreitung von X11 Systemen primar an Universitaten wurde die Software schnell bekannt und von einer Vielzahl von Entwicklern benutzt da sie leichter zu nutzen war als vorhandene Bibliotheken 7 1994 ging John Ousterhout zu Sun Labs wo er ein Team zusammenstellte um an Tcl Tk zu arbeiten In dieser Zeit verbreitete sich die Software und Mitte 1994 erschien die erste Version der Python Bibliothek Tkinter kurz darauf wurde PerlTk veroffentlicht 7 Widgets die in Anwendungen z B Baume Comboboxen Tabbed Notebooks haufig verwendet wurden waren ursprunglich nicht im Tk Kern verfugbar sondern nur uber mehrere oft konkurrierende Add ons Das wurde in der am 20 Dezember 2007 veroffentlichten Version von Tk 8 5 0 mit der Einfuhrung des sogenannten themed widget set geandert Seitdem konnen Anwendungen ohne grossere Optimierungen und ohne Add ons erstellt werden 7 Verwendung BearbeitenDie verbreitete Kombination aus Tcl Tool Command Language und dem GUI Toolkit Tk wird als Tcl Tk bezeichnet Tk eignet sich gut fur quick and dirty Programmierung und Prototypen aber auch zur Erstellung von kleinen bis mittleren Programmen fur Linux und Unix Systeme einschliesslich macOS sowie Windows ab 95 Das Kit wurde fur die Programmiersprache Tcl entwickelt und ist von dort aus einfach zu benutzen Tk ist als freie Software unter einer BSD artigen Lizenz veroffentlicht 8 Sprachanbindungen BearbeitenEs gibt diverse Sprachanbindungen fur Tk u a fur folgende Programmiersprachen Tcl Perl Python Tkinter Ruby Common Lisp R Ada TASH Haskell HTk JuliaWidgets BearbeitenTk stellt die folgenden Oberflachenelemente zur Verfugung button canvas checkbutton combobox 8 5 entry frame label labelframe listbox menu menubutton message notebook 8 5 panedwindow progressbar 8 5 radiobutton scale scrollbar separator 8 5 sizegrip 8 5 spinbox tk optionMenu treeview 8 5 text Des Weiteren sind die folgenden Toplevel Windows verfugbar tk chooseColor Farbselektion tk chooseDirectory Ordner Auswahl tk dialog Modaler Dialog tk getOpenFile File Auswahl tk messageBox Hinweis Box tk popup Post a popup menu toplevel Allgemeines Toplevel WindowGeometriemanager BearbeitenDie Geometriemanager auch Layoutmanager genannt von Tk sind pack grid und place Die Unterschiede der Geometriemanager pack Widgets werden in den verbleibenden Raum an der Oberseite links rechts oder unten angebracht An der gegenuberliegenden Seite bleibt Platz fur weitere Widgets Hiermit kann man zunachst nur recht einfache Layouts erstellen aber uber die Verwendung von geschachtelten Frames konnen sie auch komplizierter werden Besonderer Vorteil von pack und auch grid ist dass bei entsprechenden Einstellungen sich das Layout hervorragend an wechselnde Fenstergrossen anpasst grid Teilt den Platz in ein Raster aus Zeilen und Spalten ein ahnlich von Tabellen in einem Tabellenkalkulationsprogramm Insbesondere Formulare linke Spalte Feldnamen rechte Spalte Eingabefelder lassen sich hiermit schon erstellen place Ermoglicht vollig freie Anordnung von Widgets auf der Flache Grosser Nachteil ist dass die Anordnung dadurch standardmassig ortsfest ist und sich nicht an wechselnde Fenstergrosse anpassen kann Viele andere Geometriemanager arbeiten aber ebenfalls so z B Formulare bei MS Access Jedoch ist eine Anordnung der Widgets mit prozentualen Angaben moglich Dadurch sind Anpassungen an die Fenstergrosse in gewissem Masse moglich Komplexere Layouts erreicht man durch Verwenden von geschachtelten Frames In jedem Frame darf nur einer der Geometriemanager verwendet werden innerhalb einer Anwendung konnen aber durchaus alle drei vorkommen Durch die Unterstutzung von Unicode seitens Tcl konnen auch einfach internationale Zeichen in Tk Anwendungen verwendet werden Ab den Versionen Tcl Tk 8 wird native look and feel geboten d h bei Mac Applikationen sitzt die Menuzeile immer am oberen Bildschirmrand bei Windows und Unix dagegen am oberen Rand des jeweiligen Applikationsfensters Auch andere Widgets sehen jeweils so aus wie man es auf den verschiedenen Plattformen gewohnt ist Tk ist im Allgemeinen im Lieferumfang von Tcl Tk enthalten und ist frei verfugbar Es gibt reichlich Zusatzsoftware siehe auch Artikel zu Tcl Bei den meisten Linux Distributionen ist es vorhanden fur Windows und Mac kann man es kostenlos aus dem Internet laden auch als Binarversion 9 d h man braucht es nicht selbst zu ubersetzen Beispiele BearbeitenEin minimales Zeichenprogramm in Tcl 10 verwendet wird ein canvas Widget c auf das mit der Maus gezeichnet werden kann Dazu werden Bindings fur die Ereignisse linker Mausknopf gedruckt und Bewegung mit linkem Mausknopf gedruckt vereinbart Die Prozedur doodle stellt diese Bindungen her proc doodle w color black bind w lt 1 gt list doodle start W x y color bind w lt B1 Motion gt doodle move W x y Bei linkem Mausklick wird ein Linienobjekt dessen Anfangs und Endpunkt noch zusammenfallen angelegt proc doodle start w x y color set id w create line x y x y fill color Bei Mausbewegung wird das aktuelle Linienobjekt um eine Strecke verlangert proc doodle move w x y w coords id concat w coords id x y Das Hauptprogramm ist gerade einmal drei Zeilen lang package require Tk pack canvas c bg white fill both expand 1 doodle c bind c lt Double 3 gt W delete all Die letzte Anweisung definiert dass bei einem Doppelklick auf die rechte Maustaste die Zeichnung geloscht wird Das folgende Beispiel entspricht inhaltlich dem Hallo Welt Beispiel im Wikipedia Eintrag zu Java Swing ladt ggf das Toolkit bei Ausfuhrung mit der wish entbehrlich package require Tk setzt den Titel des Hauptfensters wm title Hallo Welt mit Tk fugt Hallo Welt Text hinzu pack label beispielLabel text Hallo Welt side left setzt die Fenstergrosse wm geometry 300 x200 Hinweise Das Hauptfenster muss nicht erzeugt werden sondern ist von vornherein da Das Hauptfenster muss nicht auf sichtbar gesetzt werden sondern ist von vornherein sichtbar Dem Programm muss nicht beigebracht werden dass es beim Schliessen des Fensters beendet werden soll weil das die Standardfunktionalitat ist Um ein Event Dispatching muss man sich nicht kummern Weblinks BearbeitenOffizielle Website englisch Tk 8 6 Dokumentation englisch wiki tcl lang org Wiki zum Thema Tcl Tk englisch tkdocs com Tk Beispiele fur die Anwendung unter Perl Python Ruby Tcl englisch Einzelnachweise Bearbeiten Tcl Tk Core Development Abgerufen am 16 Juli 2018 englisch www tcl tk I presented a paper on Tk at both the USENIX Conference and the X Conference in January 1991 Within a few weeks of these conferences I made the first Internet release of Tk Tcl Developer Xchange Abgerufen am 14 Dezember 2022 englisch Tcl Developer Xchange Abgerufen am 14 Dezember 2022 englisch The tk Open Source Project on Open Hub Languages Page In Open Hub abgerufen am 18 Juli 2018 History of Tcl Abgerufen am 24 Mai 2019 englisch a b c TkDocs Background Abgerufen am 24 Mai 2019 englisch tcl tk software tcltk license html tcl tk Downloadmoglichkeiten fur Tcl Tk 8 5 10 wiki tcl lang org Abgerufen von https de wikipedia org w index php title Tk Toolkit amp oldid 228864261