Tk (Software) - Tk (software)

Tk
Tcl-Logo
Tk-Demo mit Tk 8.6.6 unter Windows 10, November 2016.png
Tk 8.6.6 unter Windows 10
Originalautor(en) John Ousterhout
Entwickler Tcl-Kernteam
Erstveröffentlichung 1991 ; vor 30 Jahren ( 1991 )
Stabile Version
8.6.11.1 / 13. Januar 2021 ; vor 6 Monaten ( 2021-01-13 )
Vorschauversion
9.0a1 / 26. November 2019 ; vor 20 Monaten ( 2019-11-26 )
Repository Bearbeite dies bei Wikidata
Geschrieben in C
Betriebssystem Plattformübergreifend
Plattform Plattformübergreifend
Typ Widget-Toolkit
Lizenz BSD- Stil
Webseite www .tcl Tk

Tk ist ein kostenloses Open-Source- , plattformübergreifendes Widget-Toolkit , das eine Bibliothek mit grundlegenden Elementen von GUI-Widgets zum Erstellen einer grafischen Benutzeroberfläche (GUI) in vielen Programmiersprachen bereitstellt .

Tk bietet eine Reihe von Widgets, die häufig zum Entwickeln von Desktop-Anwendungen benötigt werden, wie Schaltflächen, Menüs, Canvas, Text, Rahmen, Label usw. Tk wurde so portiert, dass es auf den meisten Linux- , Mac OS- , Unix- und Microsoft Windows- Varianten läuft . Wie Tcl unterstützt Tk Unicode innerhalb der Basic Multilingual Plane , aber es wurde noch nicht erweitert, um den aktuellen erweiterten vollständigen Unicode zu handhaben (zB UTF-16 von UCS-2, das Tk unterstützt).

Tk wurde entwickelt, um erweitert zu werden, und es sind eine Vielzahl von Erweiterungen verfügbar, die neue Widgets oder andere Funktionen bieten.

Seit Tcl/Tk 8 bietet es "natives Look and Feel" (zum Beispiel werden Menüs und Schaltflächen wie "native" Software für jede gegebene Plattform angezeigt). Zu den Highlights der Version 8.5 gehören eine neue Theming-Engine, die ursprünglich Tk Tile hieß, jetzt aber allgemein als "themed Tk" bezeichnet wird, sowie ein verbessertes Font-Rendering. Zu den Highlights der Version 8.6 gehören PNG- Unterstützung und abgewinkelter Text.

Geschichte

Tk wurde von John Ousterhout als Erweiterung für die Skriptsprache Tcl entwickelt. Es wurde erstmals 1991 veröffentlicht. Die Tk- Versionierung wurde bis Version 8.0 getrennt von Tcl durchgeführt.

Tk wurde ursprünglich für Unix/X11 geschrieben und erwies sich in den 1990er Jahren bei Programmierern als äußerst beliebt, da es einfacher zu erlernen und zu verwenden war als Motif und andere X11-Toolkits dieser Zeit. Tk wurde auch auf Microsoft Windows- und Macintosh-Plattformen portiert, beginnend mit Tk 4.2 und mit nativem Aussehen und Verhalten in Tk 8.0 (veröffentlicht 1997) verbessert. Um die Popularität und Bedeutung von Tk in den 1990er Jahren zu markieren, wurde Ousterhout 1997 der ACM Software System Award für Tcl/Tk verliehen:

Gewinner des ACM Software System Award: John K. Ousterhout
Für die Skriptsprache Tcl, die es Entwicklern ermöglicht, komplexe Systeme aus bereits vorhandenen Komponenten zu erstellen. Das eingebettete Tk bietet einen einfachen Mechanismus zum Erstellen von grafischen Benutzeroberflächen. Zusammen bilden sie eine starke Ergänzung des Software-Repertoires.

Das Interesse an Tk nahm ab Ende der 1990er Jahre deutlich ab. Das Standard-Look and Feel auf Unix emulierte immer noch Motif , obwohl Motif im Mainstream durch Toolkits wie FLTK , Qt und GTK ersetzt wurde . Widgets, die in Anwendungen häufig verwendet wurden (zB Bäume, Comboboxen, Notizbücher mit Registerkarten), waren im Tk-Kern nicht verfügbar, sondern nur über mehrere, oft konkurrierende Add-Ons.

Tk 8.5, das Ende 2007 veröffentlicht wurde, korrigierte einige dieser Probleme, indem es dem Kern fehlende Widgets hinzufügte, eine neue Theming-Engine einführte und das Erscheinungsbild unter Unix modernisierte. Da jedoch einige Codeänderungen erforderlich waren, um diese Fortschritte zu integrieren, behalten viele bestehende Anwendungen das ältere Motif-inspirierte Gefühl bei, für das Tk bekannt geworden war.

Die Architektur

Tk ist ein plattformunabhängiges GUI- Framework, das für Tcl entwickelt wurde. Von einer Tcl-Shell (tclsh) kann Tk mit dem Befehl aufgerufen werden package require Tk. Das Programm wish (WIndowing SHell) bietet eine Möglichkeit, eine tclsh-Shell in einem grafischen Fenster auszuführen und Tk bereitzustellen.

Tk hat folgende Eigenschaften:

  • Plattformunabhängig : Wie Tcl wird Tk interpretiert. Es wurde auf mehrere Plattformen portiert und kann problemlos auf allen ohne Modifikation ausgeführt werden.
  • Anpassbar : Fast alle Funktionen eines Widgets in Tk sind über Optionen während der Erstellung des Widgets oder später über den Konfigurationsbefehl anpassbar.
  • Konfigurierbar : Viele der Optionen können in einer Optionsdatenbank gespeichert werden, wodurch das Aussehen einer Anwendung (wie das Farbschema) sehr einfach parametrisiert werden kann. Das bedeutet auch, dass es beim Speichern der anwendungsspezifischen Optionen nur darum geht, die Option add-Befehle zu speichern und beim Laden der Anwendung auszuführen.

Sprachbindungen

Eine in einer Programmiersprache geschriebene Bibliothek kann in einer anderen Sprache verwendet werden, wenn Bindungen geschrieben werden; Tk ist in die Tcl-Sprache integriert. Verschiedene andere Sprachen haben Bindungen für Tk, von denen eine unvollständige Liste auf der Tk-Website verfügbar ist. Es gibt Bindungen für zusätzliche Sprachen, die möglicherweise nicht aufgeführt sind, darunter Ada (genannt TASH), Haskell (genannt HTk), Perl , Python (genannt Tkinter ), Ruby , Rexx und Common Lisp .

Es gibt mehrere Möglichkeiten, Tk von Perl aus zu verwenden : die Tcl::Tk- und Tkx-Perl-Module, die beide Tcl als Brücke für den Zugriff auf Tk verwenden, und Perl/Tk, das nativen Perl-Zugriff auf Tk-Strukturen bietet. Die Python- Bindung verwendet Tcl als Brücke zu Tk.

Merkmale

Tk bietet verschiedene Widgets. Grundlegende Widgets sind in toplevelWidgets eingebettet , die ihrerseits normalerweise vom Betriebssystem in schwebenden Fenstern gehostet werden, die auf dem Bildschirm verschoben werden können.

Basis-Widgets

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

Widgets der obersten Ebene

  • tk_chooseColor– öffnet ein Dialogfeld, in dem der Benutzer eine Farbe auswählen kann.
  • tk_chooseDirectory – öffnet ein Dialogfeld, in dem der Benutzer ein Verzeichnis auswählen kann.
  • tk_dialog – erstellt einen modalen Dialog und wartet auf eine Antwort.
  • tk_getOpenFile – öffnet ein Dialogfeld, in dem der Benutzer eine Datei zum Öffnen auswählen kann.
  • tk_getSaveFile – öffnet ein Dialogfeld, in dem der Benutzer eine Datei zum Speichern auswählen kann.
  • tk_messageBox – öffnet ein Nachrichtenfenster und wartet auf eine Benutzerantwort.
  • tk_popup – postet ein Popup-Menü.
  • toplevel – erstellt und bearbeitet Toplevel-Widgets.

Geometriemanager

Grundlegende Widgets werden toplevelmithilfe von Geometriemanagern in Fenstern angeordnet :

  • place – positioniert Widgets an absoluten Standorten
  • grid – ordnet Widgets in einem Raster an
  • pack – packt Widgets in einen Hohlraum

Siehe auch

Verweise

Weiterlesen

Externe Links