Was macht man, wenn die Anzahl der Schaltflächen in einer Anwendung über die Komfortzone von Symbolleisten-UIs hinausgeht? Ich erreiche gerade die 1.000-Button-Marke und es gibt keine Anzeichen für eine Verlangsamung. Meine aktuelle Benutzeroberfläche mit Registerkarten-Symbolleiste wird jetzt weit über die Komfortzone hinaus ausgedehnt.
Ich habe eine dynamische Symbolleiste hinzugefügt (erscheint bei Doppelklick), wo Sie eine Schlüsselphrase eingeben und die Symbolleiste mit Schaltflächen gefüllt ist, nach denen Sie gesucht haben könnten . Dies ähnelt ziemlich vielen Befehlszeilen-UIs, die einen automatischen Vervollständigungs-Mechanismus haben. Es ist auch eine ziemlich altmodische Lösung.
Sind Sie jemals auf eine Benutzeroberfläche gestoßen, die dieses Problem auf einzigartige / überraschende / effektive Weise gelöst hat? Vermitteln Benutzeroberflächen, die aktuelle Benutzeraktionen protokollieren, einen schnelleren Zugriff auf die benötigten Tools oder fälschen sie zu oft falsch? Wie wichtig ist es, dass Benutzer die Benutzeroberfläche anpassen können (meiner Erfahrung nach tun das nur sehr wenige, aber sie fühlen sich sehr stark).
(Entschuldigung, wenn dies den Rahmen von SO sprengt, dies ist der einzige Ort, den ich kenne, der schnelle und nützliche Antworten liefert)
Bearbeiten: Einen Screenshot einer typischen Tab-Toolbar von mir hochgeladen: Grasshopper Toolbar http: / /de.wiki.mcneel.com/content/upload/images/grasshopperUIExample.png
Du bist gut aus der Komfortzone heraus, durch die Unbehaglichkeitszone und auf halbem Wege durch die Zone, in der du einen Hot-Poker-Shove-Up-Your-Backside hast: -)
Sie sollten wirklich an die Symbolleiste als Schnellzugriffsleiste denken, irgendwo, wo der Benutzer allgemeine Aktionen mit minimalen Aktionen ausführen kann. Anders als der Gimp mit seiner berüchtigten UI kann ich keine Anwendung ergründen, die fast 1.000 übliche Operationen in einer Speedbar benötigt.
Vielleicht müssen Sie überdenken, was Sie anbieten.
Einige Microsoft-Anwendungen machen es ziemlich gut, sie teilen ihre Symbolleisten in Abschnitte (z. B. Zeichnen, Statistiken, Formatierung) und lassen den Benutzer entscheiden, welche Abschnitte angezeigt werden. Auf diese Weise entscheidet der Benutzer, ob er einen minimalen Arbeitsbereich haben möchte oder ob die gesamte obere Hälfte seines Arbeitsbereichs von Symbolleisten genutzt werden soll.
Die nicht-gemeinsamen Operationen sollten immer über Menüs verfügbar sein, egal ob sie von Ihnen festgelegt (fest codiert), vom Benutzer ausgewählt (diese Abschnitte konfiguriert) oder "intelligent" vom Programm angezeigt werden (basierend auf der vorherigen Verwendung) ).
Das würde ich als einen guten Ansatz betrachten.
Lassen Sie alle Operationen über die Menüs zugänglich werden, indem Sie sie in Abschnitte unterteilen (Vorgänge innerhalb eines Abschnitts sollten mindestens vage zusammenhängen). Nehmen wir an, Sie können 30 Abschnitte mit jeweils 30 Operationen haben (unwahrscheinlich, ich weiß, aber einfach für diese Diskussion).
Haben Sie einen speziellen Abschnitt für adaptive Operationen. Damit meine ich einen Abschnitt, in dem das Programm mit Operationen gefüllt wird, basierend darauf, wie oft der Benutzer sie verwendet. Dazu müssen Sie protokollieren, wie oft ein Vorgang vom Benutzer verwendet wird (jeder Benutzer hat natürlich eine eigene Zählung, da sein Nutzungsprofil anders ist).
Erlaubt dem Benutzer zu konfigurieren, welche Abschnitte in Symbolleisten angezeigt werden, einschließlich der adaptiven. Das gibt ihnen >> die Kontrolle darüber.
Der adaptive Abschnitt sollte mit der am häufigsten verwendeten Operation befüllt werden, sofern sie nicht bereits in einer anderen Symbolleiste vorhanden sind . Auf diese Weise kann der Benutzer die am häufigsten verwendeten Operationen aufrufen, die sich nicht bereits in einer der ausgewählten Symbolleisten befinden.
Das scheint mir die flexibelste Lösung zu sein, die dem Benutzer total die Kontrolle über die Nutzung seines Bildschirmplatzes gibt.
Diese Tasten sind für Befehle wie "Linie zwischen 2 Punkten", "Kreis durch 3 Punkte" usw. usw. Viele moderne CAD-Anwendungen haben Hunderte, wenn nicht Tausende von Werkzeugen, um Geometrie zu manipulieren
Dies steht für mich als der große Fehler. Vielleicht fand ich CAD-Programme deshalb immer so unglaublich schwierig und frustrierend.
So sehe ich es an. Vor dem CAD, was haben wir getan? Bleistift und Papier, mit Lineal, Zirkel, Dreiecke, T-Quadrate, französische Kurven und so weiter. Der Übergang zum Computer erfolgte also, indem jedes Werkzeug zu einem "Werkzeug" gemacht wurde. Um weitere Funktionen hinzuzufügen, fügen Sie weitere "Tools" hinzu.
Aber das ist rückwärts. Ich habe keinen Kompass benutzt, weil er eine großartige Benutzeroberfläche hat - eigentlich ist er etwas ungeschickt -, aber weil er einen perfekten Kreis lieferte. Wenn ich mit dem Bleistift freihändig einen perfekten Kreis zeichnen könnte, würde ich nie nach dem Kompass greifen!
Nun, mein Computer kann einen perfekten Kreis zeichnen, und das Konzept der "Werkzeuge" ist für ihn irrelevant. Sehen Sie sich einige alte Videos von Mensch-Computer-Interaktion an, bevor wir wussten, was "Symbolleisten" waren. Wenn Sie auf RANDs GRAIL etwas löschen wollten, würden Sie es kritzeln. Wenn Sie eine Box mit ausgeschnittener Ecke zeichnen möchten, zeichnen Sie eine Box und hacken dann die Ecke ab. Wenn ich auf Ivan Sutherlands Sketchpad eine Linie zwischen zwei Punkten zeichnen möchte, zeichne ich eine Linie zwischen zwei Punkten, und der Computer versteht die Einschränkung, dass die Linie zwischen diesen beiden Punkten liegen sollte. Dies ist nicht so schwierig für einen Computer.
Ich weiß nicht, was 1000 Dinge Ihr CAD-Programm tut, aber ich denke, dass sie wahrscheinlich in eine relativ kleine Anzahl von Kategorien fallen:
Warum brauche ich mehr als eine Handvoll Werkzeuge? Wenn ich einen kurvenreichen Kreis zeichne, sind die Chancen wirklich gut, dass ich einen richtigen Kreis will. Lass mich zeichnen und herausfinden, was ich will. Bring mich nicht dazu, irgendwelche Symbolleisten zu verwenden.
Ich denke, die größte Frage ist, welche Art von Interaktionsfluss Ihre typischen Benutzer suchen? Sehen Sie sich an, wie Ihre Benutzer tatsächlich mit Ihrem Programm interagieren - gibt es bestimmte Muster dafür, wie sie auf die verschiedenen Elemente in Symbolleisten zugreifen?
Werden zum Beispiel einige Ihrer Symbolleistenelemente extrem häufig verwendet, während auf andere nur selten zugegriffen wird und in der Regel zusammen mit anderen ähnlichen Funktionen zugegriffen wird? Vielleicht gehören die früheren Elemente in die Symbolleiste, während die zuletzt genannten Elemente besser für eine Art Palette von Paletten geeignet wären, die in einer Seitenleiste geöffnet werden könnten.
Gibt es eine Möglichkeit, dass Sie einige Symbolleisten kontextsensitiver gestalten können? Es scheint eher unwahrscheinlich, dass alle über 1000 Ihrer Symbolleistenelemente für einen bestimmten Status der Anwendung relevant sind. Anstatt alle möglichen Aktionen anzuzeigen, zeigen Sie einfach diejenigen an, für die die Voraussetzungen erfüllt sind: Wenn Sie eine Option haben, eine Linie durch zwei Punkte zu ziehen, zeigen Sie sie erst an, wenn tatsächlich 2 Punkte ausgewählt sind.
Der wichtigste Aspekt ist, dass Benutzeroberflächen von dem gesteuert werden sollten, was der Benutzer tun muss und zu einem bestimmten Zeitpunkt sehen kann.
Adobe Photoshop nähert sich (ich kann nicht sagen "löst") dieses Problem durch Paletten mit Steuerelementen. Die einzelnen Paletten können auf dem Bildschirm schweben, an das Fenster angedockt werden und können Registerkarten mit zusätzlichen Paletten darin haben. Außerdem können die meisten Paletten ein Kontextmenü mit Zugriff auf Meta-Einstellungen für die Palette selbst haben.
Es enthält auch eine Reihe von Schlüsselelementen in einer traditionellen Symbolleiste, von denen sich einige dynamisch ändern, wenn sich der Kontext ändert. Wenn Sie beispielsweise beginnen, eine Ebene zu strecken, wird eine Box angezeigt, in der Sie eine exakte Dimension eingeben können. Wenn Sie Werkzeuge ändern, ändert sich die Symbolleiste so, dass sie Steuerelemente enthält, die sich nur auf dieses Werkzeug beziehen. Und so weiter.
Eine gute Sache an diesem Ansatz ist, dass viele starke Benutzer mehrere Monitore haben und es oft praktikabel und nützlich ist, viele Paletten auf einen zweiten Monitor zu schweben.
Ich denke, es funktioniert teilweise, weil die Kontrollen vernünftig in den Paletten gesammelt werden, so dass verwandte Kontrollen zusammen sind.
Ich bin mir aber sicher, dass es eine Obergrenze für die Gesamtzahl der Kontrollen gibt.
Können Sie beschreiben, was Sie ein bisschen mehr machen? Von den Geräuschen der Dinge ist es ein CAD-Werkzeug.
In diesem Fall kann ich etwas anderes, aber auch etwas anderes tun.
Ich würde zunächst vorschlagen, alles so kontextsensitiv wie möglich zu machen und dann folgendes zu tun:
Das neue Fenster wird auf dem zweiten Monitor des Benutzers angezeigt. Es kann groß und extravagant sein und Such- und große Symbole enthalten, um darin herumzukommen. Genauer gesagt, kann ich aber auch eine Fähigkeit hinzufügen, die sehr schnell mit dem Numpad navigiert werden kann.
Sie können im Hauptfenster erkennen, wenn der Numpad den Fokus hat und verwendet wird, und diese als Eingabe für die Suche nach bestimmten Befehlen im Offset-Fenster verwenden. Vielleicht können Sie sie alle gruppieren, so dass pro Gruppe 100 Funktionen existieren, und für Funktionen vom Typ X beginnen Sie mit einer "9". Ich kenne Ihre Benutzerbasis nicht, und das wäre nur angemessen, wenn Leute anfangen würden, Experten in der Software zu werden, aber ich denke, es ist kein schlechtes Modell im Allgemeinen (ein Fenster zur Seite, um all diese Aktionen zu verwalten).
Der Benutzer hat zwei Hände. Einer normalerweise auf der Tastatur, für Modifizierertasten und so, und der andere auf der Maus. Ein CAD-Benutzer hat wahrscheinlich eine sehr nette Maus mit 5 oder 6 Tasten.
Ich glaube, dass ich ein Interface mögen könnte, das um die aktuelle Mausposition herum erscheint. Nicht nur ein Kontextmenü mit der rechten Maustaste, sondern die Maus mit einem Textmenü, einer Symbolleiste oder dreien umgeben. Vielleicht zwei Kontextmenüs. Dies muss nicht radial sein, obwohl radial gut aussieht. Ich mag Explosionsradien, mit einem großen Loch in der Mitte, so dass der Bereich um die Maus herum sichtbar bleibt. Aber die Schnittstelle könnte rechteckig sein und gut funktionieren.
Dann würde ich die linken Finger auf der Tastatur benutzen. Weisen Sie 12345
Funktionen in einer Toolbox / einem Menü zu. Weisen Sie qwert
für eine andere Toolbox / ein anderes Menü und asdfg
und zxcvb
zu. Gib der Leertaste eine große wichtige Funktion und natürlich Strg, Alt, Shift, sogar Caps Lock.
Verwenden Sie dann Sequenzen dieser leicht zu treffenden Tasten auf der linken Seite, um Funktionen auszuwählen. asdf
und qwer
sollten die wichtigsten Sachen bekommen. Für den neueren Benutzer sollte jeder Tastenanschlag die Menüanzeige aktualisieren, damit sie sehen können, was passiert. Für den erfahrenen Benutzer sollte die Anzeige die Befehlseingabe niemals verlangsamen.
Oh, und haben Sie einen schnellen Weg, um den letzten Befehl und vielleicht den 2.-5. letzten Befehl zu wiederholen. Vielleicht haben Sie einen sichtbaren letzten Befehlsstapel und verwenden Sie die Zahlen 1-5, um einen anderen Befehl an den Anfang des Stapels zu bewegen, und einen weiteren leicht zu treffenden Schlüssel wie Back-Tick, um den obersten Befehl auf dem Stapel auszuführen.
Zum Beispiel sollte der Benutzer in der Lage sein, Space zu drücken, um die Menüs zu öffnen, und qqrwe
, um die Funktion auszuwählen und sie dann auszuführen.
Natürlich kann die Maus weiterhin zum Navigieren und Auswählen von Befehlen verwendet werden. Aber ich denke, die Tastaturmethode würde die beste Geschwindigkeit geben, ähnlich wie vi
, wie es ein Texteditor tut. Ich denke, dass man, wenn man Strg Alt und Shift gedrückt hält und die Tasten drückt, alles mit der linken Hand zu Fingerkrämpfen führt.
Sie sollten sich Techniken von Websites anschauen, da Websites mit Hunderten von Seiten häufiger sind als Apps mit Hunderten von Schaltflächen.
Eine sehr web-ähnliche Lösung besteht darin, ein "Suchbefehl" -Feld hinzuzufügen. Der Benutzer muss die Tastatur verwenden, aber wenn Sie die Befehle gut indizieren, müssen Sie sich nicht die Namen aller Befehle merken, sondern nur, was sie tun.
Eine Möglichkeit besteht darin, Ihre Tab-Toolbar hierarchisch zu gestalten. z.B. In dem Screenshot, den Sie gezeigt haben, wären die Funktionen "Analysis", "Freeform", "Primitive" und "Util" Tabs unterhalb von "Surface".
Um herauszufinden, wie Sie Dinge kategorisieren können, sollten Sie versuchen, einige typische Nutzer zu finden und Kartensortierung zu testen. Es kann ein bisschen haarig mit 1.000 Karten werden, aber Sie werden herausfinden, wie Ihre Benutzer die Schaltflächen gruppieren möchten.
Davs Vorschläge für eine kontextsensitive Symbolleiste klingen auch gut für mich.
Eine Alternative, die ich in GIS-Programmen gesehen habe, besteht darin, das Fenster ganz oben zu lassen. Zum Beispiel fügt ArcGIS die (sehr wenigen) gebräuchlichen "Befehle" in das Menü / die Werkzeugleisten ein, hat dann jedoch ein gesamtes angedocktes Fenster in ihrer Benutzeroberfläche (das ein- und ausgeschaltet werden kann), das eine Baumansicht aller verfügbaren bietet Befehle (sie nennen diese ArcToolbox - nicht zu kreativ von einem Namen ihrerseits, aber es ist sinnvoll für ihre Benutzer).
Hier gibt es einige Vorteile. Der wichtigste ist, dass Sie eine hierarchische, kategorisierte Struktur von Befehlen haben können, die ziemlich schnell zu navigieren ist. Darüber hinaus wird die Plugability sehr einfach, da Plugins einfach Befehle zur Baumstruktur hinzufügen oder neue Baumknoten erstellen können.
In mancher Hinsicht ist es nicht so elegant, aber es scheint für die meisten Leute ziemlich einfach zu sein.
David,
Dieser Beitrag ist ziemlich alt, aber ich dachte, ich würde trotzdem antworten, da ich ein eifriger Benutzer Ihrer Software, Grasshopper, sowie Stack Overflow bin. Bei der Verwendung von Komponenten in Ihrer Software finde ich mich in der Regel in zwei verschiedenen Modi: Suche nach Komponenten, die mir bereits bekannt sind, oder herauszufinden, welche anderen Komponenten verfügbar sind, die das ausführen könnten, was ich erreichen möchte. p>
Bei der Verwendung von Komponenten, die mir bereits zu 99% bekannt sind, verwende ich die Funktion, mit der Sie auf die Zeichenfläche doppelklicken und den Komponentennamen ganz oder teilweise eingeben können. Auch wenn ich nach neuen Komponenten suche, tendiere ich dazu, diese Funktion mehr als die Symbolleiste zu verwenden. Sagen wir, ich möchte eine Zeile teilen, aber ich weiß nicht, wo das Icon ist. Ich gebe einfach den Namen "Divide" ein, um nach allen Befehlen mit "Divide" in ihrem Namen zu suchen.
Während die Symbolleiste nützlich ist, um einen Überblick über die verfügbaren Funktionen zu erhalten. Ich verbringe viel Zeit damit, Komponenten herauszuziehen, nur um zu sehen, welche Eingaben sie akzeptieren. Daher denke ich, dass es nützlich wäre, die Symbolleiste dynamischer und kontextsensitiver zu gestalten. Wenn der Benutzer beispielsweise eine Komponente auswählt, die Punkte ausgeben kann, würde ich gerne ein separates Toolbar-Popup sehen, das nur Komponenten anzeigt, die Punkte als Eingabe annehmen können. Autodesk Revit verfügt über Funktionen wie diese, z. B. wenn es sich um einen Benutzer handelt wählt eine Wand aus, die mit allen Werkzeugen zum Ändern von Wänden präsentiert wird.
Mit Ihrer Software wäre dies einfach, da Sie einfach die Ausgabe der aktuell ausgewählten Komponente mit den Eingaben aller verfügbaren Komponenten referenzieren können, um die dynamische Registerkarte zu generieren. Letztlich würde es den Benutzern ermöglichen, die Frage "Wo kann ich von hier aus gehen?" Schnell zu beantworten, indem sie einzelne Komponenten in ihrer aktuellen Definition auswählen.
Einige Beschriftungen und QuickInfos (und logische Gruppierung!) können einen langen Weg zurücklegen: werfen Sie einen Blick auf die Benutzeroberfläche in Office 2007/2010; Es ist wirklich wirklich gut (Leute beschweren sich, weil es anders ist als vorher).
Stellen Sie sich nun dieselbe Benutzeroberfläche ohne die Beschriftungen auf den Tasten vor ...
Fügen Sie Ihren Schaltflächen einfach Beschriftungen hinzu und gruppieren Sie sie zu Dropdown-Menüs . Ihre Benutzeroberfläche wird großartig!
Tags und Links user-interface