Open Source im professionellen Einsatz

Benutzerfreundlich durch dynamische Menüs und L10n

Tk à la carte

Wenn ein Programm freundlich zu seinen Benutzern sein will, dann sollte es auch deren Sprache sprechen. Die Lokalisierung sieht Tcl/Tk bereits im Basispaket vor. Dynamische Menüs machen Applikationen für ihre Benutzer intuitiv bedienbar.

Menüs sind einer der wichtigsten Bestandteile aller grafischen Oberflächen, hinter ihnen verbirgt sich meist ein großer Teil der ganzen Anwendungslogik. Diese Folge der Feder-Lesen-Reihe beschreibt, wie Menüs in Tcl/Tk erzeugt werden und welche Möglichkeiten das Toolkit dabei den Programmierern zur Verfügung stellt. Ein weiterer Punkt ist das Internationalisieren und Lokalisieren von Tk-Anwendungen. All dies ist mit dem normalen Umfang von Tcl/Tk möglich, zusätzlichen Pakete sind dafür nicht erforderlich.

In Tk erzeugt der Befehl »menu« alle Arten von Menüs, unabhängig davon, ob es sich um ganze Menüleisten, Untermenüs oder Popup-Menüs handelt. Wie alle anderen Widgets auch lassen sich Menüs mit den Layout-Managern Grid, Pack oder Place anordnen. Besser und einfacher ist es allerdings, die Menüleiste an ein Fenster zu hängen:

. configure -menu .menu

Dieses Beispiel fügt das Menü ».menu« als Menüleiste an das Hauptfenster an. Wie die Abbildungen 1 bis 3 zeigen, ordnet Tk dann die Menüleiste dem jeweiligen Styleguide entsprechend an, passend zum Betriebssystem, auf dem die Applikation läuft. Beispielsweise ist unter Linux das Hilfe-Menü rechtsbündig angeordnet, während es unter Windows linksbündig an die anderen Menüpunkte anschließt. Beim Macintosh sitzt die Menüleiste der aktuellen Anwendung am oberen Rand des Desktops.

Menü im Menü

Eine Menüleiste enthält eine Reihe von Untermenüs. Die Untermenüs enthalten die eigentlichen Einträge wie Kommandos, Radio- oder Checkbuttons oder weitere Untermenüs. Diese Einträge können mit den Menü-Widget-Methoden »add«, »configure« und »delete« eingehängt und bearbeitet werden. Das Beispiel in Listing 1 erzeugt die Menüleiste und hängt dann drei Untermenüs ein.

Die Beschriftung der Menüs ist wichtiger, als mancher Programmierer vielleicht denkt, er sollte sich also die Auswahl seiner Wörter und Begriffe sehr genau überlegen. Einerseits steht wenig Platz zur Verfügung (maximal zwei bis drei Wörter), andererseits sollte die Beschreibung sehr exakt und unmissverständlich sein. Statt des Textes können Menüs aber auch ein Bild anzeigen, wie hier im Hilfemenü geschehen (siehe Abbildung 3).

Viele Anwender wollen bei der Arbeit die Finger auf der Tastatur behalten können und nicht ständig zur Maus greifen. Die Menüs öffnen sie dann mit der [Alt]-Taste und einer zusätzlichen, meist unterstrichen dargestellten Buchstaben-Taste. Im Beispiel ist dieses Verfahren beim Bearbeiten- und beim Hilfe-Menü realisiert. Mit der Option »-underline Position« erfährt Tk, welchen Buchstaben es unterstreichen soll. Dieser Buchstabe dient dann auch zum Öffnen des Untermenüs. Tk erzeugt die entsprechenden Bindings automatisch.

Abbildung 1: MacOS 9 zeigt die Menüs nicht im jeweiligen Fenster, sondern immer am oberen Bildschirmrand an. Auch Tk hält sich an diese Konvention; sogar das Abreißen der Menüs ist implementiert.

Abbildung 1: MacOS 9 zeigt die Menüs nicht im jeweiligen Fenster, sondern immer am oberen Bildschirmrand an. Auch Tk hält sich an diese Konvention; sogar das Abreißen der Menüs ist implementiert.

Menüs abreißen

Einige Anwendungen nutzen so genannte abreißbare Menüs, also Menüs, die sich von der Hauptanwendung trennen lassen. Ein prominentes Beispiel hierfür ist Gimp. Bei Tk-Menüs ist das Abreißen per Default ebenfalls möglich, es lässt sich aber auch mit der Option »-tearoff 0« verhindern.

Kontextsensitive Menüs können eine Anwendung benutzerfreundlicher gestalten. Sie stellen je nach dem aktuellen Umfeld (also dem Kontext) nur jene Kommandos zur Verfügung, deren Einsatz zurzeit auch sinnvoll ist. Alle anderen Kommandos zeigt Tk dagegen nur in grauer Schrift an. Der Anwender weiß durch diese Darstellung, welche Kommandos vorhanden sind und welche davon er im Moment nutzen kann.

Den aktuellen Zustand eines Menüeintrags legt die Option »-state Zustand« fest. Im Normalfall ist ein Kommando »normal«, im Zustand »disabled« ist es grau und kann nicht gewählt werden.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook