Menüs (Qt)

Aus C++_PHP_und_mehr
Wechseln zu: Navigation, Suche
← SIGNAL → SLOT ↑ Übersicht → Dialoge

Ein Menü nimmt Befehle auf. Klasse für Menüs ist QMenu, abgeleitet von QWidget. Ein Menü kann entweder als Pop-Down-Menü in einer Menüleiste vom Typ QMenuBar oder als eigenständiges Context-Menü verwendet werden.

QAction

Die einzelnen Befehle sind vom Typ QAction abgeleitet von QObject[1]. Eine QAction wirft das Signal void triggered(bool checked = false), wenn es ausgewählt wird, zB. durch Mausklick. Der mit dem Signal verbundene Slot führt dann den Befehl aus.
Ein QAction kann ein ICon, Text, Shortcut und eine Checkbox haben. Außerdem die üblichen Hilfen Tooltip, Statustip und WhatsThis. QActions erhalten automatisch ihren Text als Tooltip, aber das Verhalten ist in Menüs etwas anders als in gewöhnlichen Widgets, sie werden nur angezeigt, wenn für das zugehörige Menü void QMenu::setToolTipsVisible(bool visible) mit true aufgerufen wird[2].

Werkzeugleiste

Eine QAction kann auch in eine QToolBar aufgenommen werden. Wenn die QAction ein Icon enthält, wird dieses angezeigt, sonst der Text. Gleiche QAction in Menüs und Werkzeugleisten sind synchronisiert. Im Designer können sie mit Drag & Drop zwischen Menü und Werkzeugleiste verschoben/kopiert werden. In der Werkzeugleiste wird der Tooltip immer angezeigt.

Anlegen im Designer

Im Hauptfenster in der Menüleiste einfach Geben Sie Text ein überschreiben und mit Return abschließen. Damit ist ein Menü angelegt. Mit Maus anklicken zum Öffnen, dann wiederum Geben Sie Text ein ausfüllen oder Trenner einfügen anklicken. Damit ist ein QAction angelegt. Untermenüs werden durch anklicken des +-Symbols ganz rechts geöffnet.

Fußnoten

  1. Kein QWidget
  2. Voreinstellung false