Auf dieser Seite

QToolButton Class

Die Klasse „QToolButton“ stellt eine Schnellzugriffsschaltfläche für Befehle oder Optionen bereit, die in der Regel innerhalb eines „ QToolBar “ verwendet wird. Mehr...

Header: #include <QToolButton>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: QAbstractButton

Öffentliche Typen

enum ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup }

Eigenschaften

Öffentliche Funktionen

QToolButton(QWidget *parent = nullptr)
virtual ~QToolButton()
Qt::ArrowType arrowType() const
bool autoRaise() const
QAction *defaultAction() const
QMenu *menu() const
QToolButton::ToolButtonPopupMode popupMode() const
void setArrowType(Qt::ArrowType type)
void setAutoRaise(bool enable)
void setMenu(QMenu *menu)
void setPopupMode(QToolButton::ToolButtonPopupMode mode)
Qt::ToolButtonStyle toolButtonStyle() const

Neu implementierte öffentliche Funktionen

virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Öffentliche Slots

void setDefaultAction(QAction *action)
void setToolButtonStyle(Qt::ToolButtonStyle style)
void showMenu()

Signale

void triggered(QAction *action)

Geschützte Funktionen

virtual void initStyleOption(QStyleOptionToolButton *option) const

Neu implementierte geschützte Funktionen

virtual void actionEvent(QActionEvent *event) override
virtual void changeEvent(QEvent *e) override
virtual void checkStateSet() override
virtual void enterEvent(QEnterEvent *e) override
virtual bool event(QEvent *event) override
virtual bool hitButton(const QPoint &pos) const override
virtual void leaveEvent(QEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void nextCheckState() override
virtual void paintEvent(QPaintEvent *event) override
virtual void timerEvent(QTimerEvent *e) override

Ausführliche Beschreibung

Eine Werkzeugschaltfläche ist eine spezielle Schaltfläche, die einen schnellen Zugriff auf bestimmte Befehle oder Optionen ermöglicht. Im Gegensatz zu einer normalen Befehlsschaltfläche zeigt eine Werkzeugschaltfläche in der Regel keine Textbeschriftung an, sondern stattdessen ein Symbol.

Werkzeugschaltflächen werden normalerweise erstellt, wenn neue „ QAction “-Instanzen mit „ QToolBar::addAction()“ angelegt werden oder bestehende Aktionen mit „ QToolBar::addAction()“ zu einer Symbolleiste hinzugefügt werden. Es ist auch möglich, Werkzeugschaltflächen auf dieselbe Weise wie jedes andere Widget zu erstellen und sie zusammen mit anderen Widgets in Layouts anzuordnen.

Eine klassische Verwendung einer Werkzeugschaltfläche ist die Auswahl von Werkzeugen; zum Beispiel das „Stift“-Werkzeug in einem Zeichenprogramm. Dies würde durch die Verwendung einer `QToolButton` als Umschaltfläche implementiert werden (siehe ` setCheckable()`).

QToolButton unterstützt das automatische Hervorheben. Im Modus „Auto-Raise“ zeichnet die Schaltfläche nur dann einen 3D-Rahmen, wenn der Mauszeiger darauf zeigt. Diese Funktion wird automatisch aktiviert, wenn eine Schaltfläche innerhalb eines QToolBar verwendet wird. Sie kann mit setAutoRaise() geändert werden.

Das Symbol einer Werkzeugschaltfläche wird als ` QIcon` festgelegt. Dadurch ist es möglich, unterschiedliche Pixmaps für den deaktivierten und den aktiven Zustand anzugeben. Die Pixmap für den deaktivierten Zustand wird verwendet, wenn die Funktionalität der Schaltfläche nicht verfügbar ist. Die Pixmap für den aktiven Zustand wird angezeigt, wenn die Schaltfläche automatisch hervorgehoben wird, weil sich der Mauszeiger darüber befindet.

Das Aussehen und die Abmessungen der Schaltfläche lassen sich mit ` setToolButtonStyle()` und ` setIconSize()` anpassen. Bei Verwendung innerhalb eines ` QToolBar ` in einem ` QMainWindow` passt sich die Schaltfläche automatisch an die Einstellungen von ` QMainWindow` an (siehe ` QMainWindow::setToolButtonStyle()` und ` QMainWindow::setIconSize()`). Anstelle eines Symbols kann eine Werkzeugschaltfläche auch ein Pfeilsymbol anzeigen, das mit ` arrowType` festgelegt wird.

Eine Werkzeugschaltfläche kann zusätzliche Auswahlmöglichkeiten in einem Popup-Menü anbieten. Das Popup-Menü lässt sich mit ` setMenu()` festlegen. Verwenden Sie ` setPopupMode()`, um die verschiedenen Modi zu konfigurieren, die für Werkzeugschaltflächen mit einem Menüsatz verfügbar sind. Der Standardmodus ist „DelayedPopupMode“, der manchmal für die Schaltfläche „Zurück“ in einem Webbrowser verwendet wird. Nachdem die Schaltfläche eine Weile gedrückt gehalten wurde, erscheint ein Menü mit einer Liste möglicher Seiten, zu denen man springen kann. Die Zeitüberschreitung ist stilabhängig, siehe QStyle::SH_ToolButton_PopupDelay.

Die Symbolleiste des <span translate=Qt Assistant mit den Werkzeugschaltflächen" src="images/assistant-toolbar.png" title="Die Symbolleiste des Qt Assistant mit den Werkzeugschaltflächen"/>

Qt AssistantDie Symbolleiste enthält Werkzeugschaltflächen, die mit Aktionen verknüpft sind, die in anderen Bereichen des Hauptfensters verwendet werden.

Siehe auch QPushButton, QToolBar, QMainWindow und QAction.

Dokumentation zu Mitgliedstypen

enum QToolButton::ToolButtonPopupMode

Beschreibt, wie ein Menü für Werkzeugschaltflächen angezeigt werden soll, das über einen Menüsatz verfügt oder eine Liste von Aktionen enthält.

KonstanteWertBeschreibung
QToolButton::DelayedPopup0Nachdem die Werkzeugschaltfläche eine bestimmte Zeit lang gedrückt gehalten wurde (die Zeitüberschreitung ist stilabhängig, siehe QStyle::SH_ToolButton_PopupDelay), wird das Menü angezeigt. Ein typisches Anwendungsbeispiel ist die Schaltfläche „Zurück“ in den Symbolleisten einiger Webbrowser. Wenn der Benutzer darauf klickt, springt der Browser einfach zur vorherigen Seite zurück. Wenn der Benutzer die Schaltfläche eine Weile gedrückt hält, zeigt die Schaltfläche ein Menü mit der aktuellen Verlaufsliste an
QToolButton::MenuButtonPopup1In diesem Modus zeigt die Schaltfläche einen speziellen Pfeil an, um darauf hinzuweisen, dass ein Menü vorhanden ist. Das Menü wird angezeigt, wenn der Pfeilteil der Schaltfläche gedrückt wird.
QToolButton::InstantPopup2Das Menü wird ohne Verzögerung angezeigt, sobald die Schaltfläche gedrückt wird. In diesem Modus wird die eigentliche Aktion der Schaltfläche nicht ausgelöst.

Dokumentation der Eigenschaften

arrowType : Qt::ArrowType

Diese Eigenschaft legt fest, ob die Schaltfläche anstelle eines normalen Symbols einen Pfeil anzeigt

Hiermit wird ein Pfeil als Symbol für die Eigenschaft „ QToolButton “ angezeigt.

Standardmäßig ist diese Eigenschaft auf „ Qt::NoArrow “ gesetzt.

Zugriffsfunktionen:

Qt::ArrowType arrowType() const
void setArrowType(Qt::ArrowType type)

autoRaise : bool

Diese Eigenschaft gilt unabhängig davon, ob die automatische Erhöhung aktiviert ist oder nicht.

Standardmäßig ist sie deaktiviert (d. h. „false“).

Diese Eigenschaft wird derzeit unter macOS bei Verwendung von QMacStyle ignoriert.

Zugriffsfunktionen:

bool autoRaise() const
void setAutoRaise(bool enable)

popupMode : ToolButtonPopupMode

beschreibt, wie Popup-Menüs in Verbindung mit Werkzeugschaltflächen verwendet werden

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

Zugriffsfunktionen:

QToolButton::ToolButtonPopupMode popupMode() const
void setPopupMode(QToolButton::ToolButtonPopupMode mode)

toolButtonStyle : Qt::ToolButtonStyle

Diese Eigenschaft legt fest, ob die Werkzeugschaltfläche nur ein Symbol, nur Text oder Text neben bzw. unter dem Symbol anzeigt.

Die Standardeinstellung lautet „ Qt::ToolButtonIconOnly “.

Damit sich der Stil der Werkzeugschaltflächen an die Systemeinstellungen anpasst, setzen Sie diese Eigenschaft auf „ Qt::ToolButtonFollowStyle “. Unter Unix werden die Benutzereinstellungen der Desktop-Umgebung verwendet. Auf anderen Plattformen bedeutet „ Qt::ToolButtonFollowStyle “ „nur Symbol“.

QToolButton Verbindet diesen Slot automatisch mit dem entsprechenden Signal in dem „ QMainWindow “, in dem er sich befindet.

Zugriffsfunktionen:

Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle style)

Dokumentation der Mitgliedsfunktionen

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

Erstellt eine leere Werkzeugschaltfläche mit dem übergeordneten Element „ parent “.

[virtual noexcept] QToolButton::~QToolButton()

Löscht das Objekt und gibt alle zugewiesenen Ressourcen frei.

[override virtual protected] void QToolButton::actionEvent(QActionEvent *event)

Implementiert: ` QWidget::actionEvent(QActionEvent *event)`.

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

Implementiert: QAbstractButton::changeEvent(QEvent *e).

[override virtual protected] void QToolButton::checkStateSet()

Implementiert: ` QAbstractButton::checkStateSet()`.

QAction *QToolButton::defaultAction() const

Gibt die Standardaktion zurück.

Siehe auch ` setDefaultAction()`.

[override virtual protected] void QToolButton::enterEvent(QEnterEvent *e)

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

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

Implementiert: ` QAbstractButton::event(QEvent *e)`.

[override virtual protected] bool QToolButton::hitButton(const QPoint &pos) const

Implementiert neu: ` QAbstractButton::hitButton(const QPoint &pos) const`.

[virtual protected] void QToolButton::initStyleOption(QStyleOptionToolButton *option) const

Initialisieren Sie ` option ` mit den Werten aus dieser Datei: QToolButton. Diese Methode ist für Unterklassen nützlich, wenn diese ein ` QStyleOptionToolButton` benötigen, aber nicht alle Informationen selbst eingeben möchten.

Siehe auch ` QStyleOption::initFrom()`.

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

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

Gibt das zugehörige Menü zurück oder „ nullptr “, falls kein Menü definiert wurde.

Siehe auch setMenu().

[override virtual] QSize QToolButton::minimumSizeHint() const

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

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

Implementiert: ` QAbstractButton::mousePressEvent(QMouseEvent *e)`.

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

Implementiert: ` QAbstractButton::mouseReleaseEvent(QMouseEvent *e)`.

[override virtual protected] void QToolButton::nextCheckState()

Implementiert: QAbstractButton::nextCheckState().

[override virtual protected] void QToolButton::paintEvent(QPaintEvent *event)

Implementiert: QAbstractButton::paintEvent(QPaintEvent *e).

Zeichnet die Schaltfläche als Reaktion auf das „paint“ event.

[slot] void QToolButton::setDefaultAction(QAction *action)

Legt die Standardaktion auf „ action “ fest.

Wenn eine Werkzeugschaltfläche über eine Standardaktion verfügt, definiert diese Aktion die folgenden Eigenschaften der Schaltfläche:

Andere Eigenschaften, wie z. B. „ autoRepeat “, werden von Aktionen nicht beeinflusst.

Siehe auch „ defaultAction()“.

void QToolButton::setMenu(QMenu *menu)

Ordnet die angegebene menu dieser Werkzeugschaltfläche zu.

Das Menü wird entsprechend der „ popupMode “ der Schaltfläche angezeigt.

Die Zuständigkeit für das Menü wird nicht auf die Werkzeugschaltfläche übertragen.

Siehe auch „ menu()“.

[slot] void QToolButton::showMenu()

Zeigt das zugehörige Popup-Menü an (öffnet es). Wenn kein solches Menü vorhanden ist, führt diese Funktion keine Aktion aus. Diese Funktion kehrt erst zurück, wenn das Popup-Menü vom Benutzer geschlossen wurde.

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

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

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

Umsetzt: ` QAbstractButton::timerEvent(QTimerEvent *e)`.

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

Dieses Signal wird ausgelöst, wenn der angegebene „ action “ ausgelöst wird.

Die Aktion kann auch mit anderen Elementen der Benutzeroberfläche verknüpft werden, beispielsweise mit Menüeinträgen und Tastaturkürzeln. Die gemeinsame Nutzung von Aktionen auf diese Weise trägt zu einer einheitlicheren Benutzeroberfläche bei und ist oft mit weniger Aufwand bei der Implementierung verbunden.

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