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
- arrowType : Qt::ArrowType
- autoRaise : bool
- popupMode : ToolButtonPopupMode
- toolButtonStyle : Qt::ToolButtonStyle
Ö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 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.
Konstante | Wert | Beschreibung |
---|---|---|
QToolButton::DelayedPopup | 0 | Nachdem 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::MenuButtonPopup | 1 | In 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::InstantPopup | 2 | Das 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).
QMenu *QToolButton::menu() const
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:
- checkable
- checked
- enabled
- font
- icon
- popupMode (vorausgesetzt, die Aktion hat ein Menü)
- statusTip
- text
- toolTip
- whatsThis
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.