QMenu Class
Die Klasse QMenu bietet ein Menü-Widget zur Verwendung in Menüleisten, Kontextmenüs und anderen Popup-Menüs. Mehr...
Kopfzeile: | #include <QMenu> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt: | QWidget |
Eigenschaften
|
|
Öffentliche Funktionen
QMenu(QWidget *parent = nullptr) | |
QMenu(const QString &title, QWidget *parent = nullptr) | |
virtual | ~QMenu() |
QAction * | actionAt(const QPoint &pt) const |
QRect | actionGeometry(QAction *act) const |
QAction * | activeAction() const |
QAction * | addMenu(QMenu *menu) |
QMenu * | addMenu(const QString &title) |
QMenu * | addMenu(const QIcon &icon, const QString &title) |
QAction * | addSection(const QString &text) |
QAction * | addSection(const QIcon &icon, const QString &text) |
QAction * | addSeparator() |
void | clear() |
QAction * | defaultAction() const |
QAction * | exec() |
QAction * | exec(const QPoint &p, QAction *action = nullptr) |
void | hideTearOffMenu() |
QIcon | icon() const |
QAction * | insertMenu(QAction *before, QMenu *menu) |
QAction * | insertSection(QAction *before, const QString &text) |
QAction * | insertSection(QAction *before, const QIcon &icon, const QString &text) |
QAction * | insertSeparator(QAction *before) |
bool | isEmpty() const |
bool | isTearOffEnabled() const |
bool | isTearOffMenuVisible() const |
QAction * | menuAction() const |
void | popup(const QPoint &p, QAction *atAction = nullptr) |
bool | separatorsCollapsible() const |
void | setActiveAction(QAction *act) |
void | setAsDockMenu() |
void | setDefaultAction(QAction *act) |
void | setIcon(const QIcon &icon) |
void | setSeparatorsCollapsible(bool collapse) |
void | setTearOffEnabled(bool) |
void | setTitle(const QString &title) |
void | setToolTipsVisible(bool visible) |
void | showTearOffMenu(const QPoint &pos) |
void | showTearOffMenu() |
QString | title() const |
NSMenu * | toNSMenu() |
bool | toolTipsVisible() const |
Reimplementierte öffentliche Funktionen
virtual QSize | sizeHint() const override |
Signale
void | aboutToHide() |
void | aboutToShow() |
void | hovered(QAction *action) |
void | triggered(QAction *action) |
Statische öffentliche Mitglieder
QAction * | exec(const QList<QAction *> &actions, const QPoint &pos, QAction *at = nullptr, QWidget *parent = nullptr) |
QMenu * | menuInAction(const QAction *action) |
Geschützte Funktionen
int | columnCount() const |
virtual void | initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const |
Reimplementierte geschützte Funktionen
virtual void | actionEvent(QActionEvent *e) override |
virtual void | changeEvent(QEvent *e) override |
virtual void | enterEvent(QEnterEvent *) override |
virtual bool | event(QEvent *e) override |
virtual bool | focusNextPrevChild(bool next) override |
virtual void | hideEvent(QHideEvent *) override |
virtual void | keyPressEvent(QKeyEvent *e) override |
virtual void | leaveEvent(QEvent *) override |
virtual void | mouseMoveEvent(QMouseEvent *e) override |
virtual void | mousePressEvent(QMouseEvent *e) override |
virtual void | mouseReleaseEvent(QMouseEvent *e) override |
virtual void | paintEvent(QPaintEvent *e) override |
virtual void | timerEvent(QTimerEvent *e) override |
virtual void | wheelEvent(QWheelEvent *e) override |
Detaillierte Beschreibung
Ein Menü-Widget ist ein Auswahlmenü. Es kann entweder ein Pull-Down-Menü in einer Menüleiste oder ein eigenständiges Kontextmenü sein. Pull-Down-Menüs werden in der Menüleiste angezeigt, wenn der Benutzer auf den entsprechenden Eintrag klickt oder die angegebene Tastenkombination drückt. Verwenden Sie QMenuBar::addMenu(), um ein Menü in eine Menüleiste einzufügen. Kontextmenüs werden in der Regel durch eine spezielle Tastaturtaste oder durch einen Rechtsklick aufgerufen. Sie können entweder asynchron mit popup() oder synchron mit exec() ausgeführt werden. Menüs können auch als Reaktion auf das Drücken von Schaltflächen aufgerufen werden; diese sind genau wie Kontextmenüs, nur dass sie anders aufgerufen werden.
Aktionen
Ein Menü besteht aus einer Liste von Aktionspunkten. Aktionen werden mit den Funktionen addAction(), addActions() und insertAction() hinzugefügt. Eine Aktion wird vertikal dargestellt und durch QStyle wiedergegeben. Zusätzlich können Aktionen eine Textbeschriftung, ein optionales Symbol, das ganz links gezeichnet wird, und eine Tastenkombination wie "Strg+X" haben.
Die vorhandenen Aktionen in einem Menü können mit actions() gefunden werden.
Es gibt vier Arten von Aktionselementen: Trennzeichen, Aktionen, die ein Untermenü anzeigen, Widgets und Aktionen, die eine Aktion ausführen. Trennlinien werden mit addSeparator() eingefügt, Untermenüs mit addMenu(), und alle anderen Elemente werden als Aktionselemente betrachtet.
Beim Einfügen von Aktionsobjekten geben Sie normalerweise einen Empfänger und einen Slot an. Der Empfänger wird benachrichtigt, wenn das Element triggered() ist. Außerdem stellt QMenu zwei Signale bereit, triggered() und hovered(), die das QAction signalisieren, das vom Menü ausgelöst wurde.
Sie löschen ein Menü mit clear() und entfernen einzelne Aktionspunkte mit removeAction().
Ein QMenu kann auch ein Abrissmenü enthalten. Ein Abrissmenü ist ein Fenster der obersten Ebene, das eine Kopie des Menüs enthält. Dadurch kann der Benutzer häufig verwendete Menüs "abreißen" und an einer geeigneten Stelle auf dem Bildschirm positionieren. Wenn Sie diese Funktionalität für ein bestimmtes Menü wünschen, fügen Sie mit setTearOffEnabled() einen Abreißgriff ein. Bedenken Sie bei der Verwendung von Abreißmenüs, dass dieses Konzept unter Microsoft Windows nicht üblich ist und daher einigen Benutzern möglicherweise nicht vertraut ist. Erwägen Sie stattdessen die Verwendung von QToolBar.
Widgets können mit der Klasse QWidgetAction in Menüs eingefügt werden. Instanzen dieser Klasse werden verwendet, um Widgets zu speichern, und werden in Menüs mit der addAction()-Überladung eingefügt, die ein QAction annimmt. Wenn QWidgetAction das Signal triggered() auslöst, wird das Menü geschlossen.
Warnung: Um QMenu auf dem Bildschirm sichtbar zu machen, sollte exec() oder popup() anstelle von show() oder setVisible() verwendet werden. Um das Menü in der Menüleiste oder in einem anderen Menü, dem es als Untermenü hinzugefügt wurde, auszublenden oder zu deaktivieren, verwenden Sie stattdessen die entsprechenden Eigenschaften von menuAction().
QMenu auf macOS mit Qt Build Against Cocoa
QMenu kann nur einmal in ein Menü/Menüleiste eingefügt werden. Spätere Einfügungen haben keinen Effekt oder führen zu einem deaktivierten Menüpunkt.
Im Beispiel Menüs finden Sie ein Beispiel für die Verwendung von QMenuBar und QMenu in Ihrer Anwendung.
Wichtige geerbte Funktionen: addAction(), removeAction(), clear(), addSeparator(), und addMenu().
Siehe auch QMenuBar und Menüs Beispiel.
Dokumentation der Eigenschaften
icon : QIcon
Diese Eigenschaft enthält das Symbol des Menüs
Sie entspricht der Eigenschaft QAction::icon des Programms menuAction().
Standardmäßig enthält diese Eigenschaft ein Null-Symbol, wenn kein Symbol explizit festgelegt wurde.
Zugriffsfunktionen:
QIcon | icon() const |
void | setIcon(const QIcon &icon) |
separatorsCollapsible : bool
Diese Eigenschaft legt fest, ob aufeinanderfolgende Trennlinien zusammengeklappt werden sollen
Diese Eigenschaft legt fest, ob aufeinanderfolgende Trennlinien im Menü visuell zu einer einzigen zusammengeklappt werden sollen. Trennlinien am Anfang oder am Ende des Menüs werden ebenfalls ausgeblendet.
Standardmäßig ist diese Eigenschaft auf true
eingestellt.
Zugriffsfunktionen:
bool | separatorsCollapsible() const |
void | setSeparatorsCollapsible(bool collapse) |
tearOffEnabled : bool
Diese Eigenschaft gibt an, ob das Menü das Abreißen unterstützt
Bei true enthält das Menü ein spezielles Abriss-Element (oft als gestrichelte Linie am oberen Rand des Menüs dargestellt), das eine Kopie des Menüs erstellt, wenn es ausgelöst wird.
Diese "abgerissene" Kopie befindet sich in einem separaten Fenster. Sie enthält die gleichen Menüpunkte wie das Originalmenü, mit Ausnahme des Abreißgriffs.
Standardmäßig ist diese Eigenschaft false
.
Zugriffsfunktionen:
bool | isTearOffEnabled() const |
void | setTearOffEnabled(bool) |
title : QString
Diese Eigenschaft enthält den Titel des Menüs
Sie entspricht der Eigenschaft QAction::text des Programms menuAction().
Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.
Zugriffsfunktionen:
QString | title() const |
void | setTitle(const QString &title) |
toolTipsVisible : bool
Diese Eigenschaft legt fest, ob Tooltips von Menüaktionen sichtbar sein sollen
Diese Eigenschaft legt fest, ob die Tooltips von Aktionsmenüeinträgen angezeigt werden sollen.
Standardmäßig ist diese Eigenschaft false
.
Zugriffsfunktionen:
bool | toolTipsVisible() const |
void | setToolTipsVisible(bool visible) |
Dokumentation der Mitgliedsfunktionen
[explicit]
QMenu::QMenu(QWidget *parent = nullptr)
Konstruiert ein Menü mit übergeordnetem parent.
Obwohl ein Popup-Menü immer ein Widget der obersten Ebene ist, wird das Popup-Menü, wenn ein übergeordnetes Element übergeben wird, gelöscht, wenn dieses übergeordnete Element zerstört wird (wie bei jedem anderen QObject).
[explicit]
QMenu::QMenu(const QString &title, QWidget *parent = nullptr)
Konstruiert ein Menü mit einem title und einem parent.
Obwohl ein Popup-Menü immer ein Widget der obersten Ebene ist, wird das Popup-Menü, wenn ein übergeordnetes Element übergeben wird, gelöscht, wenn dieses übergeordnete Element zerstört wird (wie bei jedem anderen QObject).
Siehe auch title.
[virtual noexcept]
QMenu::~QMenu()
Zerstört das Menü.
[signal]
void QMenu::aboutToHide()
Dieses Signal wird ausgegeben, kurz bevor das Menü vor dem Benutzer verborgen wird.
Siehe auch aboutToShow() und hide().
[signal]
void QMenu::aboutToShow()
Dieses Signal wird ausgegeben, kurz bevor das Menü dem Benutzer angezeigt wird.
Siehe auch aboutToHide() und show().
QAction *QMenu::actionAt(const QPoint &pt) const
Gibt den Artikel unter pt zurück; gibt nullptr
zurück, wenn sich dort kein Artikel befindet.
[override virtual protected]
void QMenu::actionEvent(QActionEvent *e)
Reimplements: QWidget::actionEvent(QActionEvent *event).
QRect QMenu::actionGeometry(QAction *act) const
Gibt die Geometrie der Aktion act zurück.
QAction *QMenu::activeAction() const
Gibt die aktuell hervorgehobene Aktion zurück, oder nullptr
, wenn keine Aktion hervorgehoben ist.
Siehe auch setActiveAction().
QAction *QMenu::addMenu(QMenu *menu)
Diese Komfortfunktion fügt menu als Untermenü zu diesem Menü hinzu. Sie gibt menu's menuAction() zurück. Dieses Menü übernimmt nicht den Besitz von menu.
Siehe auch QWidget::addAction() und QMenu::menuAction().
QMenu *QMenu::addMenu(const QString &title)
Hängt ein neues QMenu mit title an das Menü an. Das Menü übernimmt das Eigentum an dem Menü. Gibt das neue Menü zurück.
Siehe auch QWidget::addAction() und QMenu::menuAction().
QMenu *QMenu::addMenu(const QIcon &icon, const QString &title)
Hängt ein neues QMenu mit icon und title an das Menü an. Das Menü übernimmt das Eigentum an dem Menü. Gibt das neue Menü zurück.
Siehe auch QWidget::addAction() und QMenu::menuAction().
QAction *QMenu::addSection(const QString &text)
Diese Komfortfunktion erstellt eine neue Abschnittsaktion, d.h. eine Aktion mit QAction::isSeparator(), die true zurückgibt, aber auch einen text -Hinweis hat, und fügt die neue Aktion zur Liste der Aktionen dieses Menüs hinzu. Sie gibt die neu erstellte Aktion zurück.
Das Rendering des Hinweises ist stil- und plattformabhängig. Widgetstile können die Textinformationen bei der Darstellung von Abschnitten verwenden oder sie ignorieren und Abschnitte wie einfache Trennzeichen darstellen.
QMenu übernimmt das Eigentum an dem zurückgegebenen QAction.
Siehe auch QWidget::addAction().
QAction *QMenu::addSection(const QIcon &icon, const QString &text)
Diese Komfortfunktion erstellt eine neue Abschnittsaktion, d.h. eine Aktion mit QAction::isSeparator(), die true zurückgibt, aber auch text und icon Hinweise enthält, und fügt die neue Aktion der Liste der Aktionen in diesem Menü hinzu. Sie gibt die neu erstellte Aktion zurück.
Das Rendering der Hinweise ist stil- und plattformabhängig. Widgetstile können die Text- und Symbolinformationen bei der Darstellung von Abschnitten verwenden oder sie ignorieren und Abschnitte wie einfache Trennzeichen darstellen.
QMenu übernimmt das Eigentum an dem zurückgegebenen QAction.
Siehe auch QWidget::addAction().
QAction *QMenu::addSeparator()
Diese Komfortfunktion erstellt eine neue Trennaktion, d.h. eine Aktion mit QAction::isSeparator(), die true zurückgibt, und fügt die neue Aktion zur Liste der Aktionen dieses Menüs hinzu. Sie gibt die neu erstellte Aktion zurück.
QMenu übernimmt das Eigentum an der zurückgegebenen QAction.
Siehe auch QWidget::addAction().
[override virtual protected]
void QMenu::changeEvent(QEvent *e)
Reimplements: QWidget::changeEvent(QEvent *Event).
void QMenu::clear()
Entfernt alle Aktionen des Menüs. Aktionen, die dem Menü gehören und in keinem anderen Widget angezeigt werden, werden gelöscht.
Siehe auch removeAction().
[protected]
int QMenu::columnCount() const
Wenn ein Menü nicht auf den Bildschirm passt, ordnet es sich selbst so an, dass es passt. Es ist stilabhängig, was Layout bedeutet (unter Windows werden zum Beispiel mehrere Spalten verwendet).
Diese Funktion gibt die Anzahl der erforderlichen Spalten zurück.
QAction *QMenu::defaultAction() const
Gibt die aktuelle Standardaktion zurück.
Siehe auch setDefaultAction().
[override virtual protected]
void QMenu::enterEvent(QEnterEvent *)
Reimplements: QWidget::enterEvent(QEnterEvent *event).
[override virtual protected]
bool QMenu::event(QEvent *e)
Reimplements: QWidget::event(QEvent *Event).
QAction *QMenu::exec()
Führt dieses Menü synchron aus.
Dies ist äquivalent zu exec(pos())
.
Dies gibt den ausgelösten Eintrag QAction entweder im Popup-Menü oder in einem seiner Untermenüs zurück, oder nullptr
, wenn kein Eintrag ausgelöst wurde (normalerweise weil der Benutzer Esc gedrückt hat).
In den meisten Situationen werden Sie die Position selbst angeben wollen, zum Beispiel die aktuelle Mausposition:
exec(QCursor::pos());
oder auf ein Widget ausgerichtet:
exec(somewidget.mapToGlobal(QPoint(0,0)));
oder in Reaktion auf ein QMouseEvent *e:
exec(e->globalPosition().toPoint());
QAction *QMenu::exec(const QPoint &p, QAction *action = nullptr)
Dies ist eine überladene Funktion.
Führt dieses Menü synchron aus.
Öffnet das Menü so, dass sich die Aktion action an der angegebenen globalen Position p befindet. Um die lokalen Koordinaten eines Widgets in globale Koordinaten zu übersetzen, verwenden Sie QWidget::mapToGlobal().
Dies gibt das ausgelöste QAction entweder im Popup-Menü oder in einem seiner Untermenüs zurück, oder nullptr
, wenn kein Element ausgelöst wurde (normalerweise weil der Benutzer Esc gedrückt hat).
Beachten Sie, dass alle Signale wie üblich ausgegeben werden. Wenn Sie QAction mit einem Slot verbinden und die Funktion exec() des Menüs aufrufen, erhalten Sie das Ergebnis sowohl über die Signal-Slot-Verbindung als auch im Rückgabewert von exec().
Eine übliche Anwendung ist die Positionierung des Menüs an der aktuellen Mausposition:
exec(QCursor::pos());
oder auf ein Widget ausgerichtet:
exec(somewidget.mapToGlobal(QPoint(0, 0)));
oder in Reaktion auf eine QMouseEvent *e:
exec(e->globalPosition().toPoint());
Wenn Sie ein Menü mit exec() oder popup() positionieren, denken Sie daran, dass Sie sich nicht auf die aktuelle size() des Menüs verlassen können. Aus Performance-Gründen passt das Menü seine Größe nur bei Bedarf an. Daher ist in vielen Fällen die Größe vor und nach der Show unterschiedlich. Verwenden Sie stattdessen sizeHint(), das die richtige Größe in Abhängigkeit vom aktuellen Inhalt des Menüs berechnet.
Siehe auch popup() und QWidget::mapToGlobal().
[static]
QAction *QMenu::exec(const QList<QAction *> &actions, const QPoint &pos, QAction *at = nullptr, QWidget *parent = nullptr)
Dies ist eine überladene Funktion.
Führt ein Menü synchron aus.
Die Aktionen des Menüs werden durch die Liste actions spezifiziert. Das Menü wird so eingeblendet, dass die angegebene Aktion at an der globalen Position pos erscheint. Wenn at nicht angegeben wird, erscheint das Menü an der Position pos. parent ist das übergeordnete Widget des Menüs; die Angabe des übergeordneten Widgets liefert Kontext, wenn pos allein nicht ausreicht, um zu entscheiden, wo das Menü erscheinen soll (z. B. bei mehreren Desktops oder wenn das übergeordnete Widget in QGraphicsView eingebettet ist).
Die Funktion gibt das ausgelöste QAction entweder im Popup-Menü oder in einem seiner Untermenüs zurück, oder nullptr
, wenn kein Element ausgelöst wurde (normalerweise, weil der Benutzer Esc gedrückt hat).
Dies ist äquivalent zu:
QMenu menu; QAction *at = actions[0]; // Assumes actions is not empty for (QAction *a : std::as_const(actions)) menu.addAction(a); menu.exec(pos, at);
Siehe auch popup() und QWidget::mapToGlobal().
[override virtual protected]
bool QMenu::focusNextPrevChild(bool next)
Reimplements: QWidget::focusNextPrevChild(bool next).
[override virtual protected]
void QMenu::hideEvent(QHideEvent *)
Reimplements: QWidget::hideEvent(QHideEvent *event).
void QMenu::hideTearOffMenu()
Diese Funktion blendet das abgerissene Menü zwangsweise aus und lässt es vom Desktop des Benutzers verschwinden.
Siehe auch showTearOffMenu(), isTearOffMenuVisible(), und isTearOffEnabled().
[signal]
void QMenu::hovered(QAction *action)
Dieses Signal wird ausgegeben, wenn eine Menüaktion hervorgehoben wird; action ist die Aktion, die die Ausgabe des Signals verursacht hat.
Häufig wird dies zur Aktualisierung von Statusinformationen verwendet.
Siehe auch triggered() und QAction::hovered().
[virtual protected]
void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const
Initialisieren Sie option mit den Werten aus diesem Menü und den Informationen aus action. Diese Methode ist nützlich für Unterklassen, die ein QStyleOptionMenuItem benötigen, aber nicht alle Informationen selbst eingeben wollen.
Siehe auch QStyleOption::initFrom() und QMenuBar::initStyleOption().
QAction *QMenu::insertMenu(QAction *before, QMenu *menu)
Diese Komfortfunktion fügt menu vor der Aktion before ein und gibt die Menüs menuAction() zurück.
Siehe auch QWidget::insertAction() und addMenu().
QAction *QMenu::insertSection(QAction *before, const QString &text)
Diese Komfortfunktion erstellt eine neue Titelaktion, d.h. eine Aktion mit QAction::isSeparator(), die true zurückgibt, aber auch einen text -Hinweis hat. Die Funktion fügt die neu erstellte Aktion in die Liste der Aktionen in diesem Menü vor der Aktion before ein und gibt sie zurück.
Die Darstellung des Hinweises ist stil- und plattformabhängig. Widgetstile können die Textinformationen bei der Darstellung von Abschnitten verwenden oder sie ignorieren und Abschnitte wie einfache Trennzeichen darstellen.
QMenu übernimmt das Eigentum an dem zurückgegebenen QAction.
Siehe auch QWidget::insertAction() und addSection().
QAction *QMenu::insertSection(QAction *before, const QIcon &icon, const QString &text)
Diese Komfortfunktion erstellt eine neue Titelaktion, d.h. eine Aktion mit QAction::isSeparator(), die true zurückgibt, aber auch mit text und icon Hinweisen. Die Funktion fügt die neu erstellte Aktion in die Liste der Aktionen in diesem Menü vor der Aktion before ein und gibt sie zurück.
Das Rendering der Hinweise ist stil- und plattformabhängig. Widgetstile können die Text- und Symbolinformationen bei der Darstellung von Abschnitten verwenden oder sie ignorieren und Abschnitte wie einfache Trennzeichen darstellen.
QMenu übernimmt das Eigentum an dem zurückgegebenen QAction.
Siehe auch QWidget::insertAction() und addSection().
QAction *QMenu::insertSeparator(QAction *before)
Diese Komfortfunktion erstellt eine neue Trennaktion, d.h. eine Aktion mit QAction::isSeparator(), die true zurückgibt. Die Funktion fügt die neu erstellte Aktion in die Liste der Aktionen in diesem Menü vor der Aktion before ein und gibt sie zurück.
QMenu übernimmt das Eigentum an der zurückgegebenen Aktion QAction.
Siehe auch QWidget::insertAction() und addSeparator().
bool QMenu::isEmpty() const
Gibt true
zurück, wenn keine sichtbaren Aktionen in das Menü eingefügt sind, andernfalls false.
Siehe auch QWidget::actions().
bool QMenu::isTearOffMenuVisible() const
Wenn ein Menü abgerissen wird, wird ein zweites Menü angezeigt, um den Inhalt des Menüs in einem neuen Fenster darzustellen. Wenn sich das Menü in diesem Modus befindet und das Menü sichtbar ist, wird true
zurückgegeben; andernfalls false.
Siehe auch showTearOffMenu(), hideTearOffMenu(), und isTearOffEnabled().
[override virtual protected]
void QMenu::keyPressEvent(QKeyEvent *e)
Reimplements: QWidget::keyPressEvent(QKeyEvent *event).
[override virtual protected]
void QMenu::leaveEvent(QEvent *)
Reimplements: QWidget::leaveEvent(QEvent *Event).
QAction *QMenu::menuAction() const
Gibt die mit diesem Menü verbundene Aktion zurück.
[static]
QMenu *QMenu::menuInAction(const QAction *action)
Gibt das Menü zurück, das in action enthalten ist, oder nullptr
, wenn action kein Menü enthält.
In Widget-Anwendungen können Aktionen, die Menüs enthalten, verwendet werden, um Menüpunkte mit Untermenüs zu erstellen, oder in Symbolleisten eingefügt werden, um Schaltflächen mit Popup-Menüs zu erstellen.
[override virtual protected]
void QMenu::mouseMoveEvent(QMouseEvent *e)
Reimplements: QWidget::mouseMoveEvent(QMouseEvent *event).
[override virtual protected]
void QMenu::mousePressEvent(QMouseEvent *e)
Reimplements: QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected]
void QMenu::mouseReleaseEvent(QMouseEvent *e)
Reimplements: QWidget::mouseReleaseEvent(QMouseEvent *event).
[override virtual protected]
void QMenu::paintEvent(QPaintEvent *e)
Reimplements: QWidget::paintEvent(QPaintEvent *event).
void QMenu::popup(const QPoint &p, QAction *atAction = nullptr)
Zeigt das Menü so an, dass sich die Aktion atAction an der angegebenen globalen Position p befindet. Um die lokalen Koordinaten eines Widgets in globale Koordinaten zu übersetzen, verwenden Sie QWidget::mapToGlobal().
Wenn Sie ein Menü mit exec() oder popup() positionieren, sollten Sie bedenken, dass Sie sich nicht auf die aktuelle size() des Menüs verlassen können. Aus Leistungsgründen passt das Menü seine Größe nur bei Bedarf an, so dass in vielen Fällen die Größe vor und nach der Anzeige unterschiedlich ist. Verwenden Sie stattdessen sizeHint(), das die richtige Größe in Abhängigkeit vom aktuellen Inhalt des Menüs berechnet.
Siehe auch QWidget::mapToGlobal() und exec().
void QMenu::setActiveAction(QAction *act)
Setzt die aktuell markierte Aktion auf act.
Siehe auch activeAction().
void QMenu::setAsDockMenu()
Legen Sie dieses Menü als das Dock-Menü fest, das durch einen Optionsklick auf das Dock-Symbol der Anwendung verfügbar ist. Nur unter macOS verfügbar.
void QMenu::setDefaultAction(QAction *act)
Damit wird die Standardaktion auf act gesetzt. Die Standardaktion kann je nach der aktuellen QStyle einen visuellen Hinweis enthalten. Eine Standardaktion gibt in der Regel an, was standardmäßig passiert, wenn ein Drop auftritt.
Siehe auch defaultAction().
void QMenu::showTearOffMenu(const QPoint &pos)
Diese Funktion zeigt das abgerissene Menü zwangsweise an und lässt es auf dem Desktop des Benutzers an der angegebenen globalen Position pos erscheinen.
Siehe auch hideTearOffMenu(), isTearOffMenuVisible(), und isTearOffEnabled().
void QMenu::showTearOffMenu()
Dies ist eine überladene Funktion.
Diese Funktion zeigt das abgerissene Menü zwangsweise an, so dass es auf dem Desktop des Benutzers unter dem Mauszeiger erscheint.
Siehe auch hideTearOffMenu(), isTearOffMenuVisible(), und isTearOffEnabled().
[override virtual]
QSize QMenu::sizeHint() const
Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::sizeHint.
[override virtual protected]
void QMenu::timerEvent(QTimerEvent *e)
Reimplements: QObject::timerEvent(QTimerEvent *event).
NSMenu *QMenu::toNSMenu()
Gibt das native NSMenu für dieses Menü zurück. Nur unter macOS verfügbar.
Hinweis: Qt setzt den Delegaten für das native Menü. Wenn Sie Ihren eigenen Delegaten setzen müssen, stellen Sie sicher, dass Sie den Originaldelegaten speichern und alle Aufrufe an diesen weiterleiten.
[signal]
void QMenu::triggered(QAction *action)
Dieses Signal wird ausgelöst, wenn eine Aktion in diesem Menü ausgelöst wird.
action ist die Aktion, die die Ausgabe des Signals verursacht hat.
Normalerweise verbinden Sie das Signal triggered() jeder Menüaktion mit ihrem eigenen benutzerdefinierten Slot, aber manchmal werden Sie mehrere Aktionen mit einem einzigen Slot verbinden wollen, zum Beispiel, wenn Sie eine Gruppe von eng zusammenhängenden Aktionen haben, wie "links ausrichten", "zentrieren", "rechts ausrichten".
Hinweis: Dieses Signal wird für das übergeordnete Hauptmenü in einer Hierarchie ausgegeben. Daher muss nur das übergeordnete Menü mit einem Slot verbunden werden; Untermenüs müssen nicht verbunden werden.
Siehe auch hovered() und QAction::triggered().
[override virtual protected]
void QMenu::wheelEvent(QWheelEvent *e)
Reimplements: QWidget::wheelEvent(QWheelEvent *event).
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.