Auf dieser Seite

QMenu Class

Die Klasse „QMenu“ stellt ein Menü-Widget zur Verwendung in Menüleisten, Kontextmenüs und anderen Popup-Menüs bereit. Mehr...

Header: #include <QMenu>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: 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

Neu implementierte ö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

Neu implementierte 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

Ausführliche Beschreibung

Menü mit mehreren Aktionspunkten

Ein Menü-Widget ist ein Auswahlmenü. Es kann sich entweder um ein Pulldown-Menü in einer Menüleiste oder um ein eigenständiges Kontextmenü handeln. Pulldown-Menüs werden von 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 Tastentaste 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 Tastendrücke aufgerufen werden; diese unterscheiden sich von Kontextmenüs lediglich in der Art und Weise, wie sie aufgerufen werden.

Aktionen

Ein Menü besteht aus einer Liste von Aktionselementen. Aktionen werden mit den Funktionen `addAction()`, ` addActions()` und ` insertAction()` hinzugefügt. Eine Aktion wird vertikal dargestellt und mit ` QStyle` gerendert. Darüber hinaus können Aktionen eine Textbezeichnung, ein optionales Symbol ganz links sowie eine Tastenkombination wie „Strg+X“ haben.

Die vorhandenen Aktionen eines Menüs können mit ` actions()` abgefragt werden.

Es gibt vier Arten von Aktionselementen: Trennzeichen, Aktionen, die ein Untermenü anzeigen, Widgets und Aktionen, die eine Aktion ausführen. Trennzeichen werden mit addSeparator() eingefügt, Untermenüs mit addMenu() und alle anderen Elemente gelten als Aktionselemente.

Beim Einfügen von Aktionselementen geben Sie in der Regel einen Empfänger und einen Slot an. Der Empfänger wird benachrichtigt, sobald das Element mit ` triggered()` aufgerufen wird. Darüber hinaus stellt `QMenu` zwei Signale bereit: ` triggered()` und ` hovered()`, die dem ` QAction ` mitteilen, welche Aktion über das Menü ausgelöst wurde.

Mit ` clear()` löscht man ein Menü und mit ` removeAction()` entfernt man einzelne Aktionselemente.

Ein QMenu kann auch ein abtrennbares Menü bereitstellen. Ein abtrennbares Menü ist ein Fenster der obersten Ebene, das eine Kopie des Menüs enthält. Dies ermöglicht es dem Benutzer, häufig verwendete Menüs „abzutrennen“ und an einer geeigneten Stelle auf dem Bildschirm zu positionieren. Wenn Sie diese Funktionalität für ein bestimmtes Menü wünschen, fügen Sie mit ` setTearOffEnabled()` einen Abtrennungsgriff ein. Beachten Sie bei der Verwendung von Abtrennungsmenüs, dass dieses Konzept unter Microsoft Windows in der Regel nicht verwendet wird, sodass einige Benutzer damit möglicherweise nicht vertraut sind. Ziehen Sie stattdessen die Verwendung von ` QToolBar ` in Betracht.

Widgets können mit der Klasse ` QWidgetAction ` in Menüs eingefügt werden. Instanzen dieser Klasse dienen zur Aufnahme von Widgets und werden mit der Überladung von `addAction()`, die ein ` QAction` akzeptiert, in Menüs eingefügt. Wenn die ` QWidgetAction ` das Signal ` triggered()` auslöst, wird das Menü geschlossen.

Warnung: Um QMenu auf dem Bildschirm sichtbarzu machen, sollten „ 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 unter macOS mit Qt Build Against Cocoa

QMenu kann nur einmal in ein Menü bzw. eine Menüleiste eingefügt werden. Nachfolgende Einfügungen haben keine Wirkung oder führen zu einem deaktivierten Menüpunkt.

Im Beispiel „Menüs“ finden Sie eine Anleitung zur Verwendung von „ QMenuBar “ und „QMenu“ in Ihrer Anwendung.

Wichtige geerbte Funktionen: addAction(), removeAction(), clear(), addSeparator() und addMenu().

Siehe auch das Beispiel„ QMenuBar “ und „Menüs“.

Dokumentation zu den Eigenschaften

icon : QIcon

Diese Eigenschaft enthält das Symbol des Menüs

Dies entspricht der Eigenschaft „ QAction::icon “ des „ menuAction “ ().

Standardmäßig enthält diese Eigenschaft ein Null-Symbol, sofern kein Symbol explizit festgelegt wurde.

Zugriffsfunktionen:

QIcon icon() const
void setIcon(const QIcon &icon)

separatorsCollapsible : bool

Diese Eigenschaft legt fest, ob aufeinanderfolgende Trennzeichen zusammengefasst werden sollen

Diese Eigenschaft legt fest, ob aufeinanderfolgende Trennzeichen im Menü optisch zu einem einzigen zusammengefasst werden sollen. Trennzeichen am Anfang oder am Ende des Menüs werden ebenfalls ausgeblendet.

Standardmäßig ist diese Eigenschaft auf „ true “ gesetzt.

Zugriffsfunktionen:

bool separatorsCollapsible() const
void setSeparatorsCollapsible(bool collapse)

tearOffEnabled : bool

Diese Eigenschaft gibt an, ob das Menü das Abreißen unterstützt

Wenn der Wert „true“ ist, enthält das Menü einen speziellen Abtrennpunkt (oft als gestrichelte Linie am oberen Rand des Menüs dargestellt), der beim Auslösen eine Kopie des Menüs erstellt.

Diese „abgetrennte“ Kopie wird in einem separaten Fenster angezeigt. Sie enthält dieselben Menüelemente wie das ursprüngliche Menü, mit Ausnahme des Abtrennungsgriffs.

Standardmäßig ist diese Eigenschaft auf „ false “ gesetzt.

Zugriffsfunktionen:

bool isTearOffEnabled() const
void setTearOffEnabled(bool)

title : QString

Diese Eigenschaft enthält den Titel des Menüs

Dies entspricht der Eigenschaft „ QAction::text “ der Methode „ 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 angezeigt werden sollen

Diese Eigenschaft legt fest, ob Aktionsmenüeinträge ihren Tooltip anzeigen.

Standardmäßig ist diese Eigenschaft auf „ false “ gesetzt.

Zugriffsfunktionen:

bool toolTipsVisible() const
void setToolTipsVisible(bool visible)

Dokumentation zu Mitgliedsfunktionen

[explicit] QMenu::QMenu(QWidget *parent = nullptr)

Erstellt ein Menü mit dem übergeordneten Element „ parent “.

Obwohl ein Popup-Menü immer ein Widget der obersten Ebene ist, wird es – sofern 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)

Erstellt ein Menü mit einem „ title “ und einem „ parent “.

Obwohl ein Popup-Menü immer ein Widget der obersten Ebene ist, wird es – sofern 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()

Löscht das Menü.

[signal] void QMenu::aboutToHide()

Dieses Signal wird ausgelöst, kurz bevor das Menü für den Benutzer ausgeblendet wird.

Siehe auch aboutToShow() und hide().

[signal] void QMenu::aboutToShow()

Dieses Signal wird unmittelbar vor der Anzeige des Menüs für den Benutzer ausgesendet.

Siehe auch aboutToHide() und show().

QAction *QMenu::actionAt(const QPoint &pt) const

Gibt das Element unter pt zurück; gibt nullptr zurück, wenn dort kein Element vorhanden ist.

[override virtual protected] void QMenu::actionEvent(QActionEvent *e)

Implementiert: ` 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 markierte Aktion zurück oder „ nullptr “, falls derzeit keine Aktion markiert ist.

Siehe auch ` setActiveAction()`.

QAction *QMenu::addMenu(QMenu *menu)

Diese Hilfsfunktion fügt „ menu “ als Untermenü zu diesem Menü hinzu. Sie gibt die Funktion „ menuAction()“ von „ menu “ zurück. Dieses Menü übernimmt nicht die Eigentumsrechte an „ menu “.

Siehe auch QWidget::addAction() und QMenu::menuAction().

QMenu *QMenu::addMenu(const QString &title)

Fügt dem Menü ein neues Element „ QMenu “ mit dem Wert „ title “ hinzu. Das Menü übernimmt die Verantwortung für dieses Element. Gibt das neue Menü zurück.

Siehe auch „ QWidget::addAction()“ und „ QMenu::menuAction()“.

QMenu *QMenu::addMenu(const QIcon &icon, const QString &title)

Fügt dem Menü ein neues „ QMenu “ mit den Einträgen „ icon “ und „ title “ hinzu. Das Menü übernimmt die Eigentumsrechte an diesem Menü. Gibt das neue Menü zurück.

Siehe auch „ QWidget::addAction()“ und „ QMenu::menuAction()“.

QAction *QMenu::addSection(const QString &text)

Diese Hilfsfunktion erstellt eine neue Abschnittsaktion, d. h. eine Aktion, bei der die Funktion „ QAction::isSeparator()“ den Wert „true“ zurückgibt, die aber auch den Hinweis „ text “ enthält, und fügt die neue Aktion zur Aktionsliste dieses Menüs hinzu. Sie gibt die neu erstellte Aktion zurück.

Die Darstellung des Hinweises ist stil- und plattformabhängig. Widget-Stile können die Textinformationen bei der Darstellung von Abschnitten verwenden oder diese ignorieren und Abschnitte wie einfache Trennzeichen darstellen.

QMenu Übernimmt die Verantwortung für das zurückgegebene ` QAction`.

Siehe auch ` QWidget::addAction()`.

QAction *QMenu::addSection(const QIcon &icon, const QString &text)

Diese Hilfsfunktion erstellt eine neue Abschnittsaktion, d. h. eine Aktion, bei der ` QAction::isSeparator()` den Wert `true` zurückgibt, die aber auch die Hinweise ` text ` und ` icon ` enthält, und fügt die neue Aktion zur Aktionsliste dieses Menüs hinzu. Sie gibt die neu erstellte Aktion zurück.

Die Darstellung der Hinweise ist stil- und plattformabhängig. Widget-Stile können die Text- und Symbolinformationen bei der Darstellung von Abschnitten verwenden oder diese ignorieren und Abschnitte wie einfache Trennzeichen darstellen.

QMenu Übernimmt die Eigentümerschaft des zurückgegebenen ` QAction`.

Siehe auch ` QWidget::addAction()`.

QAction *QMenu::addSeparator()

Diese Hilfsfunktion erstellt eine neue Trennaktion, d. h. eine Aktion, bei der ` QAction::isSeparator()` den Wert „true“ zurückgibt, und fügt die neue Aktion zur Aktionsliste dieses Menüs hinzu. Sie gibt die neu erstellte Aktion zurück.

QMenu Übernimmt die Verantwortung für das zurückgegebene ` QAction`.

Siehe auch ` QWidget::addAction()`.

[override virtual protected] void QMenu::changeEvent(QEvent *e)

Umsetzt: ` QWidget::changeEvent(QEvent *event)`.

void QMenu::clear()

Entfernt alle Aktionen des Menüs. Aktionen, die zu diesem 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, passt es sich so an, dass es Platz findet. Was unter „Anpassung“ genau zu verstehen ist, hängt vom jeweiligen System ab (unter Windows werden beispielsweise 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 *)

Umsetzt: ` QWidget::enterEvent` (`QEnterEvent *event`).

[override virtual protected] bool QMenu::event(QEvent *e)

Umsetzt: QWidget::event(QEvent *event).

QAction *QMenu::exec()

Führt dieses Menü synchron aus.

Dies entspricht ` exec(pos())`.

Dies gibt den ausgelösten Befehl „ QAction “ entweder im Popup-Menü oder in einem seiner Untermenüs zurück oder den Wert „ nullptr “, wenn kein Menüpunkt ausgelöst wurde (normalerweise, weil der Benutzer die Esc-Taste gedrückt hat).

In den meisten Fällen werden Sie die Position selbst festlegen wollen, zum Beispiel die aktuelle Mausposition:

exec(QCursor::pos());

oder ausgerichtet auf ein Widget:

exec(somewidget.mapToGlobal(QPoint(0,0)));

oder als Reaktion auf ein „ QMouseEvent “ *e:

exec(e->globalPosition().toPoint());

QAction *QMenu::exec(const QPoint &p, QAction *action = nullptr)

Führt dieses Menü synchron aus.

Öffnet das Menü so, dass sich die Aktions action an der angegebenen globalen Position p befindet. Um die lokalen Koordinaten eines Widgets in globale Koordinaten umzuwandeln, 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 Eintrag ausgelöst wurde (normalerweise, weil der Benutzer die Esc-Taste gedrückt hat).

Beachten Sie, dass alle Signale wie gewohnt ausgesendet werden. Wenn Sie ein „ 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()`.

Üblicherweise wird das Menü an der aktuellen Mausposition positioniert:

exec(QCursor::pos());

oder an einem Widget ausgerichtet:

exec(somewidget.mapToGlobal(QPoint(0, 0)));

oder als Reaktion auf ein ` QMouseEvent *e`:

exec(e->globalPosition().toPoint());

Beachten Sie beim Positionieren eines Menüs mit `exec()` oder ` popup()` (), dass Sie sich nicht auf die aktuelle Größe des Menüs (` size()`) verlassen können. Aus Leistungsgründen passt das Menü seine Größe nur bei Bedarf an. Daher ist die Größe in vielen Fällen vor und nach der Anzeige unterschiedlich. Verwenden Sie stattdessen ` sizeHint()`, das die richtige Größe in Abhängigkeit vom aktuellen Inhalt des Menüs berechnet.

Dies ist eine überladene Funktion.

Siehe auch „ popup()“ und „ QWidget::mapToGlobal()“.

[static] QAction *QMenu::exec(const QList<QAction *> &actions, const QPoint &pos, QAction *at = nullptr, QWidget *parent = nullptr)

Führt ein Menü synchron aus.

Die Aktionen des Menüs werden durch die Liste „ actions “ festgelegt. Das Menü wird so eingeblendet, dass die angegebene Aktion „ at “ an der globalen Position „ pos “ erscheint. Wenn „ at “ nicht angegeben ist, erscheint das Menü an der Position „ pos “. „ parent “ ist das übergeordnete Widget des Menüs; die Angabe des übergeordneten Widgets liefert Kontextinformationen, wenn „ pos “ allein nicht ausreicht, um zu entscheiden, wo das Menü platziert werden soll (z. B. bei mehreren Desktops oder wenn das übergeordnete Widget in „ QGraphicsView “ eingebettet ist).

Die Funktion gibt das ausgelöste Element ` 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 die Esc-Taste gedrückt hat).

Dies entspricht:

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);

Dies ist eine überladene Funktion.

Siehe auch „ popup()“ und „ QWidget::mapToGlobal()“.

[override virtual protected] bool QMenu::focusNextPrevChild(bool next)

Implementiert erneut: ` QWidget::focusNextPrevChild` (bool next).

[override virtual protected] void QMenu::hideEvent(QHideEvent *)

Implementiert: ` QWidget::hideEvent(QHideEvent *event)`.

void QMenu::hideTearOffMenu()

Diese Funktion blendet das abgetrennte Menü zwangsweise aus, sodass es vom Desktop des Benutzers verschwindet.

Siehe auch showTearOffMenu(), isTearOffMenuVisible() und isTearOffEnabled().

[signal] void QMenu::hovered(QAction *action)

Dieses Signal wird ausgelöst, wenn eine Menüaktion markiert ist; „ action “ ist die Aktion, die zur Auslösung des Signals geführt 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 unter action. Diese Methode ist für Unterklassen nützlich, wenn diese ein ` QStyleOptionMenuItem` benötigen, aber nicht alle Informationen selbst eingeben möchten.

Siehe auch QStyleOption::initFrom() und QMenuBar::initStyleOption().

QAction *QMenu::insertMenu(QAction *before, QMenu *menu)

Diese Hilfsfunktion fügt „ menu “ vor „action 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, bei der ` QAction::isSeparator()` den Wert „true“ zurückgibt, die aber auch den Hinweis ` text ` enthält. Die Funktion fügt die neu erstellte Aktion in die Aktionsliste dieses Menüs vor der Aktion ` before ` ein und gibt sie zurück.

Die Darstellung des Hinweises ist stil- und plattformabhängig. Widget-Stile können die Textinformationen bei der Darstellung von Abschnitten verwenden oder diese ignorieren und Abschnitte wie einfache Trennzeichen darstellen.

QMenu Übernimmt die Eigentümerschaft an dem zurückgegebenen ` QAction`.

Siehe auch ` QWidget::insertAction()` und ` addSection()`.

QAction *QMenu::insertSection(QAction *before, const QIcon &icon, const QString &text)

Diese Hilfsfunktion erstellt eine neue Titelaktion, d. h. eine Aktion, bei der ` QAction::isSeparator()` den Wert „true“ zurückgibt, die aber auch die Hinweise ` text ` und ` icon ` enthält. Die Funktion fügt die neu erstellte Aktion in die Aktionsliste dieses Menüs vor der Aktion ` before ` ein und gibt sie zurück.

Die Darstellung der Hinweise ist stil- und plattformabhängig. Widget-Stile können die Text- und Symbolinformationen bei der Darstellung von Abschnitten verwenden oder diese ignorieren und Abschnitte wie einfache Trennzeichen darstellen.

QMenu Übernimmt die Verantwortung für das zurückgegebene ` QAction`.

Siehe auch ` QWidget::insertAction()` und ` addSection()`.

QAction *QMenu::insertSeparator(QAction *before)

Diese Hilfsfunktion erstellt eine neue Trennaktion, d. h. eine Aktion, bei der „ QAction::isSeparator()“ den Wert „true“ zurückgibt. Die Funktion fügt die neu erstellte Aktion in die Aktionsliste dieses Menüs vor der Aktion „ before “ ein und gibt sie zurück.

QMenu Übernimmt die Verantwortung für die zurückgegebene ` QAction`.

Siehe auch „ QWidget::insertAction()“ und „ addSeparator()“.

bool QMenu::isEmpty() const

Gibt „ true “ zurück, wenn keine sichtbaren Aktionen in das Menü eingefügt wurden, andernfalls „false“.

Siehe auch QWidget::actions().

bool QMenu::isTearOffMenuVisible() const

Wenn ein Menü abgetrennt wird, wird ein zweites Menü angezeigt, um den Menüinhalt in einem neuen Fenster darzustellen. Befindet sich das Menü in diesem Modus und ist es sichtbar, gibt die Funktion „ true “ zurück; andernfalls „false“.

Siehe auch showTearOffMenu(), hideTearOffMenu() und isTearOffEnabled().

[override virtual protected] void QMenu::keyPressEvent(QKeyEvent *e)

Implementiert: ` QWidget::keyPressEvent(QKeyEvent *event)`.

[override virtual protected] void QMenu::leaveEvent(QEvent *)

Umsetzt: ` QWidget::leaveEvent(QEvent *event)`.

Gibt die mit diesem Menü verknüpfte Aktion zurück.

Gibt das in ` action` enthaltene Menü zurück oder ` nullptr `, falls ` action ` kein Menü enthält.

In Widget-Anwendungen können Aktionen, die Menüs enthalten, zum Erstellen von Menüelementen mit Untermenüs verwendet oder in Symbolleisten eingefügt werden, um Schaltflächen mit Popup-Menüs zu erstellen.

[override virtual protected] void QMenu::mouseMoveEvent(QMouseEvent *e)

Implementiert neu: ` QWidget::mouseMoveEvent` (`QMouseEvent *event`).

[override virtual protected] void QMenu::mousePressEvent(QMouseEvent *e)

Implementiert: ` QWidget::mousePressEvent` (`QMouseEvent *event`).

[override virtual protected] void QMenu::mouseReleaseEvent(QMouseEvent *e)

Implementiert: ` QWidget::mouseReleaseEvent` (`QMouseEvent *event`).

[override virtual protected] void QMenu::paintEvent(QPaintEvent *e)

Implementiert: ` QWidget::paintEvent` (`QPaintEvent *event`).

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 umzuwandeln, verwenden Sie die Funktion „ QWidget::mapToGlobal()“.

Beachten Sie beim Positionieren eines Menüs mit ` exec()` oder `popup()`, dass Sie sich nicht auf die aktuelle Position ` size()` des Menüs verlassen können. Aus Leistungsgründen passt das Menü seine Größe nur bei Bedarf an, sodass in vielen Fällen die Größe vor und nach dem Einblenden 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 Dock-Menü fest, das durch einen Option-Klick auf das Dock-Symbol der Anwendung aufgerufen werden kann. Nur unter macOS verfügbar.

void QMenu::setDefaultAction(QAction *act)

Dadurch wird die Standardaktion auf „ act “ festgelegt. Die Standardaktion kann je nach der aktuellen Einstellung unter „ QStyle “ visuell hervorgehoben werden. Eine Standardaktion gibt in der Regel an, was standardmäßig geschieht, wenn ein Drag-and-Drop-Vorgang stattfindet.

Siehe auch defaultAction().

void QMenu::showTearOffMenu(const QPoint &pos)

Diese Funktion zeigt das abgetrennte Menü zwangsweise an, sodass es an der angegebenen globalen Position pos auf dem Desktop des Benutzers erscheint.

Siehe auch hideTearOffMenu(), isTearOffMenuVisible() und isTearOffEnabled().

void QMenu::showTearOffMenu()

Diese Funktion zeigt das abgetrennte Menü zwangsweise an, sodass es auf dem Desktop des Benutzers unter dem Mauszeiger erscheint.

Dies ist eine überladene Funktion.

Siehe auch hideTearOffMenu(), isTearOffMenuVisible() und isTearOffEnabled().

[override virtual] QSize QMenu::sizeHint() const

Implementiert eine Zugriffsfunktion für die Eigenschaft „ QWidget::sizeHint “ neu.

[override virtual protected] void QMenu::timerEvent(QTimerEvent *e)

Implementiert: ` QObject::timerEvent(QTimerEvent *event)`.

NSMenu *QMenu::toNSMenu()

Gibt das native NSMenu für dieses Menü zurück. Nur unter macOS verfügbar.

Hinweis: Qt legt den Delegaten für das native Menü fest. Wenn Sie einen eigenen Delegaten festlegen möchten, stellen Sie sicher, dass Sie den ursprünglichen Delegaten speichern und alle Aufrufe an diesen weiterleiten.

[signal] void QMenu::triggered(QAction *action)

Dieses Signal wird ausgegeben, 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 einem eigenen benutzerdefinierten Slot, aber manchmal möchten Sie mehrere Aktionen mit einem einzigen Slot verbinden, zum Beispiel, wenn Sie eine Gruppe eng miteinander verbundener Aktionen haben, wie „Linksbündig“, „Zentrieren“, „Rechtsbündig“.

Hinweis: Dieses Signal wird für das oberste übergeordnete Menü in einer Hierarchie ausgesendet. 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)

Implementiert: ` QWidget::wheelEvent` (`QWheelEvent *event`).

© 2026 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.