Im Vergleich

Volle Flexibilität beim Gestalten der Benutzeroberfläche bieten Curses und Urwid, wobei letzteres Vieles leichter macht. Hier brauchen Sie sich weniger mit Nebensächlichkeiten zum Ansteuern des Bildschirms befassen.

Bei Pythondialog versus Newt hat Pythondialog die Nase vorn: Mit wenig Programmcode erstellen Sie hier komplexe Dialogboxen und werten diese aus. Die Konzepte bei Newt entsprechen nicht den etablierten Gewohnheiten, was den Umgang erschwert. Hinzu kommt, dass das Auswerten etlicher Funktions- und Sondertasten nicht oder nur auf Umwegen klappt. Beide Toolkits bieten ähnliche Elemente, darunter Knöpfe, Auswahlfelder (Checkboxen, Radioboxen), Eingabefelder (Text, Passwort), Fortschrittsbalken und die Möglichkeiten für komplexe Dialogfenster; Menüleisten fehlen hingegen vollständig.

Bei der Dokumentation gibt es insofern Mängel, als vielfach das Lesen und Verstehen des Programmcodes des Toolkits gefordert ist. Viele Details wurden (noch) nicht in die Dokumentation der Module aufgenommen. Hilfreich sind die Tutorials zur Einführung, die bei Curses und Urwid qualitativ hervorstechen.

Alle beschriebenen Toolkits laufen durchweg stabil und eignen sich zum Entwickeln von Benutzeroberflächen. Der Einarbeitungsaufwand weicht aber erheblich voneinander ab, insbesondere bei Curses und Urwid gilt es, mehr Zeit zu investieren. Newt bildet aufgrund seiner begrenzten Dokumentation das Schlusslicht [4].

Als Stolperfallen fielen im Test Probleme bei Umlauten und Sonderzeichen (Newt) auf, ebenso das Verhalten beim Verkleinern oder Vergrößern des Fensters. Pythondialog und Urwid passen sich problemlos diesen geänderten Bedingungen an, das Curses-Modul jedoch nur eingeschränkt. Newt kommt damit überhaupt nicht klar und stürzt verschreckt ab.

Aus dem Blickwinkel der Barrierefreiheit sind Textinterfaces ideal: Die einzelnen Buchstaben landen direkt auf der Braillezeile. Beim Entwickeln gilt es aber zu beachten, dass die Braillezeile den Text ausgibt, der rechts neben dem Cursor steht. Daher ist es wichtig, den Cursor an eine sinnvolle Position zu bewegen, um den Text an der fokussierten Position zu erfassen.

Wunschliste

Wie bereits benannt, fehlen bei den Bibliotheken einfach Möglichkeiten zum Erzeugen von Menüleisten. Die beiden Projekte Turbovision [5] und Pytvision [6] stellen diese Möglichkeiten bereit und könnten in dieser Hinsicht als Vorbild dienen.

Pythondialog und Newt kommen mit einem festgelegten Farbschema. Gut wäre, wenn sich dieses die individuellen Bedürfnissen anpassen ließe. Ähnliches benennt Sven Guckes [7] und ergänzt die Wunschliste um die Anpassbarkeit des Interfaces und den Einsatz regulärer Ausdrücke. Auf die Entwickler wartet also noch viel Arbeit. 

Infos

[1] Curses-Programmierung mit Python: Frank Hofmann "Kunstvoll konstruiert", LinuxUser 10/2010, S. 84 http://www.linux-community.de/21884

[2] X-Dialog http://xdialog.free.fr

[3] Nanowawi: http://www.sourceforge.net/projects/nanowawi

[4] Newt-Tutorial (englisch): http://www.whoow.org/people/Jean-Marc.Lienher/gnewt/tutorial.html

[5] Turbovision: http://tvision.sourceforge.net

[6] PyTVision: http://pytvision.sourceforge.net

[7] Text-Interfaces: http://www.guckes.net/talks/abstract.texttool_interfaces.txt

Der Autor

Frank Hofmann hat Informatik an der Technischen Universität Chemnitz studiert. Derzeit arbeitet er in Berlin im Büro 2.0, einem Experten-Netzwerk rund um Open Source, als Dienstleister mit Spezialgebiet Druck und Satz. Er gehört zum Vorstand der Linux User Group Potsdam (uplug).

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Entwicklung textbasierter Oberflächen, Teil 2
    Textbasierte Benutzeroberflächen zu erstellen, ist nicht besonders kompliziert. Die vorgestellten Frameworks erfordern zwar zunächst etwas Einarbeitungszeit, ermöglichen aber sehr viel Freiheit beim Design.
  • Textbasierte User-Interfaces (Teil 1)
    Die Kommandozeile halten viele Anwender für trist und schlecht bedienbar. Das muss aber nicht so sein: Mithilfe von Dialog und Whiptail werten Sie Ihre eigenen Skripts unkompliziert mit Fenstern, Menüs und Dialogen auf.
  • Mehr Komfort
    Von einfachen Abfragen bis hin zu komplexen Menüs: Mit dem Toolkit Dialog bauen Sie eine grafische Oberfläche für Shell-Skripte, die oft nicht mehr als eine zusätzliche Zeile brauchen.
  • KDE mit dem Kiosk-Modus absichern
    Ob im Unternehmen mit Hunderten von Arbeitsplätzen oder einfach nur zu Hause als Kindersicherung – Nutzerrechte auf dem Desktop einzuschränken ist oft ein wichtiges Anliegen. Mit KDE geht das ganz einfach.
  • KDE Themes Teil 3
    Dass KDE die Fähigkeit besitzt, recht schnell mittels sogenannter Themes sein Äußeres zu ändern, dürfte inzwischen hinreichend bekannt sein. Diese Serie beschreibt, wie man eigene Themes erstellt.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 0 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...
Tinte sparen bei neuem Drucker
Lars Schmitt, 30.11.2017 17:43, 2 Antworten
Hi Leute, ich habe mir Anfang diesen Monats einen Tintenstrahldrucker angeschafft, der auch su...
Für Linux programmieren
Alexander Kramer, 25.11.2017 08:47, 3 Antworten
Ich habe einen Zufallsgenerator entworfen und bereits in c++ programmiert. Ich möchte den Zufalls...