Steuerungstasten

nächste Folie (auch Enter oder Spacebar).
vorherige Folie
 d  schaltet das Zeichnen auf Folien ein/aus
 p  wechselt zwischen Druck- und Präsentationsansicht
CTRL  +  vergrößert die Folien
CTRL  -  verkleinert die Folien
CTRL  0  setzt die Größenänderung zurück

Das Weiterschalten der Folien kann ebenfalls durch das Klicken auf den rechten bzw. linken Folienrand erfolgen.

Grafische Benutzerschnittstellen

  • GUI ("Graphical User Interface")
  • Benutzeroberfläche, die Mensch-Computer-Interaktion über grafische Komponenten erlaubt
  • Anwendungen werden als Fenster dargestellt
  • Fensterinhalt wird aus grafischen Komponenten aufgebaut, auch "Widgets" genannt
  • Mittels grafischer Komponenten wird die Information ein- und ausgegeben
  • Interaktion mit grafischen Steuerelementen in der Regel per Maus u. Tastatur; heutzutage auch häufig per Touchscreen

Der Anfang

In den frühen 80er Jahren kamen die ersten Geräte mit grafischer Benutzeroberfläche und Mauseingabe auf den Markt, wie z.B.


apple_lisa
Apple Lisa

Anwendung als Fenster

paint_window
Titelbalken
Fensterrahmen
Symbol der Anwendung
Vergrößern/Verkleinern des Fensters
Quelle: Screenshot der Anwendung "Paint" von Windows XP

Ein leeres Blatt Papier

  • Viele Anwendungen, die dazu dienen, kreative Inhalte zu erstellen, starten mit einem leeren "Canvas" und einer Palette mit Werkzeugsymbolen
  • Beispiele: MS Word, MS Powerpoint, Photoshop, etc.
  • Oft ist es möglich, mehrere Dokumente geöffnet zu haben und gleichzeitig zu bearbeiten

Ein leeres Blatt Papier

paint_window
Leeres Blatt
Benutzergenerierte Inhalte
Werkzeugsymbole
Menüleiste
Quelle: Screenshot der Anwendung "Paint" von Windows XP

Einfacher Zugriff

  • Vorteil von Werkzeugsymbolen gegenüber Menüleisten ist der schnelle Zugriff mit nur einem Mausklick
  • Ein Ziel beim GUI-Design einer Anwendung ist u.a., einen möglichst schnellen Zugriff zu erlauben
  • Häufig verwendete Aktionen müssen schnell erreichbar sein, andere können mehr Klicks erfordern
  • Geübte Nutzer verwenden auch häufig Tastaturkürzel, wie z.B. CTRL+C zum Kopieren (System-Standards beachten!)

Gestaltung der GUIs orientiert sich am Einsatzzweck

  • Je nach Einsatzzweck sieht eine GUI anders aus:
    Inhalte betrachten, in Datenbank suchen, neue Inhalte erstellen, bestimmte Aufgabe lösen
  • Beispiel: Ein einfacher Video- oder Bildbetrachter kommt mit wenigen Bedienelementen aus
  • Beispiel: Ist der Weg zum Lösen der Aufgabe bekannt, kann der Benutzer schrittweise geführt werden
db

Gruppieren von Komponenten

Die Gestaltpsychologie nennt einige Gesetze zum Gruppieren von Komponenten


  • Gesetz der Nähe
  • Gesetz der Ähnlichkeit
  • Gesetz der Kontinuität
  • Gesetz der einfachen Gestalt

Gesetz der Nähe

Nahe beieinander platzierte Objekte gehören zusammen


paint_help

Gesetz der Ähnlichkeit

Objekte mit der gleichen Farbe, Form, Größe, Orientierung, etc. gehören zusammen


paint_help

Gesetz der einfachen Gestalt

Komponenten werden gruppiert, wenn sie gemeinsam eine einfache Form ergeben


paint_help

Gesetz der Kontinuität

Kleine Komponenten werden zu größeren Objekten gruppiert, wenn Linien/Kurven kontinuierlich fortgesetzt werden können


paint_help

Beispiel für eine räumliche Anordnung von Komponenten

Welche Art der Gruppierung/Zusammengehörigkeit von Komponenten existieren hier?


ui_example

Grafische Komponenten (Widgets)

Verschiedene Arten von Widgets


  • Komponenten, die eine Aktion anstoßen
  • Komponenten, die eine Eingabe abfragen
  • Komponenten, die Inhalte darstellen
  • Komponenten, die etwas gruppieren
  • Komponenten, die Größe oder Ausschnitt verändern

Komponenten, die eine Aktion anstoßen

Mit diesen Komponenten wird typischerweise eine ausführbare Funktion verknüpft, die beim Aktivieren aufgerufen wird


  • Schaltfläche (Button)
  • Menü-Leiste und Menü-Einträge
  • Kontext-Menü
  • Werkzeugleiste
  • etc.

Beispiel: HTML <button> Element      

Komponenten, die eine Eingabe abfragen

Diese Komponenten können z.B. eine ausführbare Funktion aufrufen, wenn sie editiert werden


  • Texteingabefeld ui_lineedit
  • Schieberegler ui_slider
  • Kombinationsfeld ui_combobox
  • Spinbox/Spinner ui_spinbox
  • Radiobuttonui_spinbox
  • Kontrollkästchenui_spinbox
  • etc.
Quelle: Bilder aus Qt Reference Documentation

Komponenten, die Inhalte darstellen

  • Bezeichnungsfeld ui_label
  • Fortschrittsbalken ui_progressbar
  • Listenui_lineedit
  • Bäume
  • Tabellen
  • etc.
Quelle: Bilder aus Qt Reference Documentation

Komponenten, die etwas gruppieren

  • Gruppenfeld
ui_groupbox
  • Reiter (Tabs)
ui_tabwidget
  • etc
Quelle: Bilder aus Qt Reference Documentation

Komponenten, die Größe oder Ausschnitt verändern

  • Scroll-Leiste
ui_label
  • Größenziehpunkt
ui_label
  • etc.
Quelle: Bilder aus Qt Reference Documentation

Die acht goldenen Regeln für gutes GUI-Design

nach: Ben Shneiderman: Designing the user interface. Strategies for effective human-computer interaction. 3. Auflage, Addison-Wesley, New York, 1998.

  1. Strebe nach Konsistenz
  2. Erlaube geübten Nutzern, Tastenkürzel zu verwenden
  3. Biete dem Nutzer informative Rückmeldungen an
  4. Entwerfe abgeschlossene Dialoge, die einen Start und ein Ende haben
  5. Biete einfache Fehlerbehandlung
  6. Erlaube die Umkehrung von Aktionen (Undo)
  7. Gib dem Nutzer das Gefühl, die Anwendung zu kontrollieren
  8. Veringere die Informationen, die der Nutzer im Kurzzeitgedächtnis behalten muss

Undo

  • Undo wird in der Regel mit einem Stapelspeicher implementiert
  • Jede Aktion des Benutzer wird auf den Stapel gelegt
  • Möchte der Benutzer Aktionen rückgängig machen werden diese nacheinander vom Stapel genommen und für jede Aktion die Umkehrfunktion ausgeführt
  • D.h. hoher Mehraufwand für den Programmierer, da auch die Umkehrfunktion implementiert werden muss
  • Ist eine Funktion verlustbehaftet (löscht Daten) müssen die Daten gespeichert werden
  • Daher hat der Stapelspeicher typischerweise eine definierte maximale Größe

Längere Berechnungen

  • Bei längeren Berechnungen sollte immer ein Fortschrittsbalken angezeigt werden ui_progressbar
  • Dies gibt dem Benutzer eine Voraussage wie lange die Aktion dauert und motiviert zum Warten
  • Längere Berechnungen sollten jederzeit vom Benutzer abgebrochen werden können
  • Nach einem Abbruch sollte die Anwendung im selben Zustand sein wie vorher (Arbeiten auf temporären Datenstrukturen)
  • Idealerweise sollten längere Berechnungen im Hintergrund laufen (nicht immer sinnvoll, wenn der Benutzer Zustand/Daten dann noch ändern kann)

Beispiele für Bedienungshilfen

paint_help
Hilfe Menü
Tooltips
Statusleiste
Beispiel: HTML-Tooltip (Mauszeiger über Kasten)
Quelle: Screenshot der Anwendung "Paint" von Windows XP

Gibt es Fragen?

questions

Anregungen oder Verbesserungsvorschläge können auch gerne per E-mail an mich gesendet werden: Kontakt

Weitere Vorlesungsfolien

Folien auf Englisch (Slides in English)