QToolButton Class

Die Klasse QToolButton stellt eine Schnellzugriffsschaltfläche für Befehle oder Optionen zur Verfügung, die normalerweise innerhalb einer QToolBar verwendet wird. Mehr...

Kopfzeile: #include <QToolButton>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbt: 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

Reimplementierte ö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

Reimplementierte 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

Detaillierte Beschreibung

Eine Werkzeugschaltfläche ist eine spezielle Schaltfläche, die schnellen Zugriff auf bestimmte Befehle oder Optionen bietet. Im Gegensatz zu einer normalen Befehlsschaltfläche zeigt eine Werkzeugschaltfläche normalerweise keine Textbeschriftung, sondern stattdessen ein Symbol.

Werkzeugschaltflächen werden normalerweise erstellt, wenn neue QAction Instanzen mit QToolBar::addAction() erstellt oder bestehende Aktionen mit QToolBar::addAction() zu einer Werkzeugleiste hinzugefügt werden. Es ist auch möglich, Schaltflächen wie jedes andere Widget zu konstruieren und sie neben anderen Widgets in Layouts anzuordnen.

Eine klassische Verwendung einer Werkzeugschaltfläche ist die Auswahl von Werkzeugen, z. B. das "Stift"-Werkzeug in einem Zeichenprogramm. Dies würde durch die Verwendung eines QToolButtons als Umschaltknopf implementiert werden (siehe setCheckable()).

QToolButton unterstützt automatisches Anheben. Im Auto-Raise-Modus zeichnet der Button nur dann einen 3D-Rahmen, wenn die Maus auf ihn zeigt. Die Funktion wird automatisch aktiviert, wenn ein Button innerhalb einer QToolBar verwendet wird. Ändern Sie sie mit setAutoRaise().

Das Symbol einer Werkzeugschaltfläche wird als QIcon festgelegt. Dadurch ist es möglich, unterschiedliche Pixmaps für den deaktivierten und den aktiven Zustand festzulegen. Die deaktivierte Pixelgrafik wird verwendet, wenn die Funktion der Schaltfläche nicht verfügbar ist. Die aktive Pixmap wird angezeigt, wenn die Schaltfläche automatisch hochgezogen wird, weil der Mauszeiger über ihr schwebt.

Das Aussehen und die Abmessungen der Schaltfläche können mit setToolButtonStyle() und setIconSize() angepasst werden. Wenn die Schaltfläche innerhalb einer QToolBar in einer QMainWindow verwendet wird, passt sie sich 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 angegeben wird.

Eine Werkzeugschaltfläche kann in einem Popup-Menü zusätzliche Auswahlmöglichkeiten anbieten. Das Popup-Menü kann mit setMenu() eingestellt werden. Verwenden Sie setPopupMode(), um die verschiedenen Modi zu konfigurieren, die für Werkzeugschaltflächen mit einem eingestellten Menü verfügbar sind. Der Standardmodus ist DelayedPopupMode, der manchmal mit der Schaltfläche "Zurück" in einem Webbrowser verwendet wird. Wenn Sie die Schaltfläche eine Weile gedrückt halten, wird ein Menü mit einer Liste möglicher Seiten angezeigt, zu denen Sie springen können. Der Timeout ist stilabhängig, siehe QStyle::SH_ToolButton_PopupDelay.

Qt Assistant Die Symbolleiste mit Schaltflächen
Qt AssistantDie Symbolleiste enthält Schaltflächen, die mit Aktionen in anderen Teilen des Hauptfensters verknüpft sind.

Siehe auch QPushButton, QToolBar, QMainWindow, und QAction.

Dokumentation der Mitgliedstypen

enum QToolButton::ToolButtonPopupMode

Beschreibt, wie ein Menü für Werkzeugschaltflächen angezeigt werden soll, das ein Menüset oder eine Liste von Aktionen enthält.

KonstanteWertBeschreibung
QToolButton::DelayedPopup0Nachdem die Schaltfläche eine bestimmte Zeit lang gedrückt gehalten wurde (die Zeitspanne 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 anzuzeigen, dass ein Menü vorhanden ist. Das Menü wird angezeigt, wenn der Pfeilteil der Taste gedrückt wird.
QToolButton::InstantPopup2Das Menü wird ohne Verzögerung angezeigt, wenn die Werkzeugtaste gedrückt wird. In diesem Modus wird die eigene Aktion der Schaltfläche nicht ausgelöst.

Eigenschaft Dokumentation

arrowType : Qt::ArrowType

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

Dadurch wird ein Pfeil als Symbol für die Schaltfläche QToolButton angezeigt.

Standardmäßig ist diese Eigenschaft auf Qt::NoArrow eingestellt.

Zugriffsfunktionen:

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

autoRaise : bool

Diese Eigenschaft gibt an, ob das automatische Erhöhen aktiviert ist oder nicht.

Der Standardwert ist deaktiviert (d. h. falsch).

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

Zugriffsfunktionen:

bool autoRaise() const
void setAutoRaise(bool enable)

popupMode : ToolButtonPopupMode

beschreibt die Art und Weise, in der Popup-Menüs mit Werkzeugschaltflächen verwendet werden.

Standardmäßig ist diese Eigenschaft auf DelayedPopup eingestellt.

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/unter dem Symbol anzeigt.

Die Standardeinstellung ist Qt::ToolButtonIconOnly.

Wenn Sie möchten, dass der Stil der Werkzeugschaltflächen den Systemeinstellungen folgt, setzen Sie diese Eigenschaft auf Qt::ToolButtonFollowStyle. Unter Unix werden die Benutzereinstellungen der Desktop-Umgebung verwendet. Auf anderen Plattformen bedeutet Qt::ToolButtonFollowStyle nur das Symbol.

QToolButton verbindet diesen Slot automatisch mit dem entsprechenden Signal in der QMainWindow, in der er sich befindet.

Zugriffsfunktionen:

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

Dokumentation der Mitgliedsfunktionen

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

Konstruiert eine leere Werkzeugschaltfläche mit übergeordnetem parent.

[virtual noexcept] QToolButton::~QToolButton()

Zerstört das Objekt und gibt alle zugewiesenen Ressourcen frei.

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

Reimplements: QWidget::actionEvent(QActionEvent *event).

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

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

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

Reimplements: QAbstractButton::checkStateSet().

QAction *QToolButton::defaultAction() const

Gibt die Standardaktion zurück.

Siehe auch setDefaultAction().

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

Reimplements: QWidget::enterEvent(QEnterEvent *event).

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

Reimplements: QAbstractButton::event(QEvent *e).

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

Reimplements: QAbstractButton::hitButton(const QPoint &pos) const.

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

Initialisieren Sie option mit den Werten aus dieser QToolButton. Diese Methode ist nützlich für Unterklassen, wenn sie eine QStyleOptionToolButton benötigen, aber nicht alle Informationen selbst eingeben wollen.

Siehe auch QStyleOption::initFrom().

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

Reimplements: QWidget::leaveEvent(QEvent *Event).

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

Siehe auch setMenu().

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

Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::minimumSizeHint.

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

Reimplements: QAbstractButton::mousePressEvent(QMouseEvent *e).

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

Reimplements: QAbstractButton::mouseReleaseEvent(QMouseEvent *e).

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

Reimplements: QAbstractButton::nextCheckState().

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

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

Bemalt die Schaltfläche als Reaktion auf das Paint-Ereignis event.

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

Setzt die Standardaktion auf action.

Wenn eine Werkzeugschaltfläche eine Standardaktion hat, definiert die 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)

Verknüpft die angegebene menu mit dieser Schaltfläche.

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

Der Besitz des Menüs wird nicht auf die Werkzeugschaltfläche übertragen.

Siehe auch menu().

[slot] void QToolButton::showMenu()

Zeigt (öffnet) das zugehörige Popup-Menü. Wenn es kein solches Menü gibt, bewirkt diese Funktion nichts. Diese Funktion kehrt erst zurück, wenn der Benutzer das Popup-Menü geschlossen hat.

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

Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::sizeHint.

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

Reimplements: QAbstractButton::timerEvent(QTimerEvent *e).

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

Dieses Signal wird ausgegeben, wenn die angegebene action ausgelöst wird.

Die Aktion kann auch mit anderen Teilen der Benutzeroberfläche verknüpft werden, z. B. mit Menüpunkten und Tastaturkürzeln. Die gemeinsame Nutzung von Aktionen auf diese Weise trägt dazu bei, die Benutzeroberfläche konsistenter zu gestalten, und ist oft mit weniger Aufwand zu implementieren.

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