このページでは

QToolButton Class

QToolButton クラスは、コマンドやオプションへのクイックアクセスボタンを提供し、通常はQToolBar 内で使用されます。詳細...

ヘッダー: #include <QToolButton>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QAbstractButton

パブリック型

enum ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup }

プロパティ

パブリック関数

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

再実装されたパブリック関数

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

パブリック・スロット

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

シグナル

void triggered(QAction *action)

protected 関数

virtual void initStyleOption(QStyleOptionToolButton *option) const

再実装された保護関数

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

詳細な説明

ツールボタンとは、特定のコマンドやオプションに素早くアクセスできるようにする特別なボタンです。通常のコマンドボタンとは異なり、ツールボタンには通常、テキストラベルは表示されず、代わりにアイコンが表示されます。

ツールボタンは通常、QToolBar::addAction() を使用して新しいQAction インスタンスを作成する際、またはQToolBar::addAction() を使用して既存のアクションをツールバーに追加する際に生成されます。また、他のウィジェットと同様にツールボタンを構築し、レイアウト内で他のウィジェットと並べて配置することも可能です。

ツールボタンの代表的な用途の一つは、ツールの選択です。例えば、描画プログラムの「ペン」ツールなどです。これは、QToolButtonをトグルボタンとして使用することで実装されます(setCheckable()を参照)。

QToolButton は自動浮き出しをサポートしています。自動浮き出しモードでは、マウスがボタン上にあるときのみ、3D フレームが表示されます。この機能は、QToolBar 内でボタンが使用されると自動的に有効になります。setAutoRaise() を使用して変更できます。

ツールボタンのアイコンは、QIcon として設定されます。これにより、無効状態と有効状態で異なるピクマップを指定することが可能になります。無効状態のピクマップは、ボタンの機能が利用できない場合に使用されます。有効状態のピクマップは、マウスポインタがボタン上にホバーしているためにボタンが自動浮上しているときに表示されます。

ボタンの外観とサイズは、setToolButtonStyle() およびsetIconSize() を使用して調整可能です。QMainWindow 内のQToolBar 内で使用する場合、ボタンは自動的にQMainWindow の設定に合わせて調整されます(QMainWindow::setToolButtonStyle() およびQMainWindow::setIconSize() を参照)。アイコンの代わりに、ツールボタンは矢印記号を表示することもでき、これはarrowType で指定します。

ツールボタンは、ポップアップメニューで追加の選択肢を提供することができます。ポップアップメニューは、setMenu() を使用して設定できます。setPopupMode() を使用すると、メニューが設定されたツールボタンで利用可能なさまざまなモードを構成できます。 デフォルトのモードは DelayedPopupMode であり、Web ブラウザの「戻る」ボタンなどで使用されることがあります。ボタンをしばらく押し続けると、移動可能なページの一覧を表示するメニューがポップアップ表示されます。タイムアウトはスタイルに依存します。詳細はQStyle::SH_ToolButton_PopupDelay を参照してください。

ツールボタンが配置されたQt Assistantのツールバー

Qt Assistantのツールバーには、メインウィンドウの他の部分で使用されるアクションに関連付けられたツールボタンが含まれています。

QPushButton 、QToolBar 、QMainWindow 、およびQActionも参照してください 。

メンバ型のドキュメント

enum QToolButton::ToolButtonPopupMode

メニューが設定されている、またはアクションのリストが含まれているツールボタンについて、メニューをどのようにポップアップ表示すべきかを説明します。

定数値説明
QToolButton::DelayedPopup0ツールボタンを一定時間(タイムアウトはスタイルに依存します。QStyle::SH_ToolButton_PopupDelay を参照)長押しすると、メニューが表示されます。 典型的な使用例としては、一部の Web ブラウザのツールバーにある「戻る」ボタンが挙げられます。ユーザーがこれをクリックすると、ブラウザは単に前のページに戻ります。ユーザーがボタンをしばらく押し続けると、ツールボタンには現在の履歴リストを含むメニューが表示されます。
QToolButton::MenuButtonPopup1このモードでは、ツールボタンにメニューが存在することを示す特別な矢印が表示されます。ボタンの矢印部分を押すと、メニューが表示されます。
QToolButton::InstantPopup2ツールボタンが押されると、遅延なくメニューが表示されます。このモードでは、ボタン自体のアクションは実行されません。

プロパティのドキュメント

arrowType : Qt::ArrowType

このプロパティは、ボタンに通常のアイコンの代わりに矢印を表示するかどうかを指定します

これにより、QToolButton のアイコンとして矢印が表示されます。

デフォルトでは、このプロパティは `Qt::NoArrow` に設定されています。

アクセス関数:

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

autoRaise : bool

このプロパティは、自動レイズが有効か無効かに関係なく適用されます。

デフォルトは無効(つまり false)です。

現在、macOS で QMacStyle を使用している場合、このプロパティは無視されます。

アクセス関数:

bool autoRaise() const
void setAutoRaise(bool enable)

popupMode : ToolButtonPopupMode

ツールボタンでのポップアップメニューの使用方法について説明します

デフォルトでは、このプロパティはDelayedPopup に設定されています。

アクセス関数:

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

toolButtonStyle : Qt::ToolButtonStyle

このプロパティは、ツールボタンにアイコンのみ、テキストのみ、あるいはアイコンの横または下にテキストが表示されるかを指定します。

デフォルトは `Qt::ToolButtonIconOnly` です。

ツールボタンのスタイルをシステム設定に従わせるには、このプロパティを `Qt::ToolButtonFollowStyle` に設定します。Unix では、デスクトップ環境のユーザー設定が使用されます。その他のプラットフォームでは、`Qt::ToolButtonFollowStyle ` は「アイコンのみ」を意味します。

QToolButton このスロットを、それが属するQMainWindow 内の関連するシグナルに自動的に接続します。

アクセス関数:

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

メンバ関数のドキュメント

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

親要素がparent である空のツールボタンを作成します。

[virtual noexcept] QToolButton::~QToolButton()

オブジェクトを破棄し、割り当てられていたリソースをすべて解放します。

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

QWidget::actionEvent(QActionEvent *event) を再実装します。

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

QAbstractButton::changeEvent(QEvent *e) の再実装です。

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

QAbstractButton::checkStateSet() を再実装します。

QAction *QToolButton::defaultAction() const

デフォルトのアクションを返します。

setDefaultAction()も参照してください 。

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

QWidget::enterEvent (QEnterEvent *event)を再実装します。

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

QAbstractButton::event(QEvent *e) を再実装します。

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

QAbstractButton::hitButton (const QPoint &pos)const を再実装します。

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

option を、QToolButton の値を用いて初期化します。この方法は、QStyleOptionToolButton が必要であるものの、すべての情報を自分で設定したくないサブクラスにとって便利です。

QStyleOption::initFrom()も参照してください 。

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

QWidget::leaveEvent(QEvent *event) を再実装します。

関連付けられたメニューを返します。メニューが定義されていない場合は、nullptr を返します。

setMenu()も参照してください 。

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

プロパティ「QWidget::minimumSizeHint 」のアクセス関数を再実装します。

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

QAbstractButton::mousePressEvent(QMouseEvent *e) を再実装します。

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

QAbstractButton::mouseReleaseEvent(QMouseEvent *e) を再実装します。

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

QAbstractButton::nextCheckState() を再実装します。

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

QAbstractButton::paintEvent(QPaintEvent *e) を再実装します。

event へのペイント要求に応じて、ボタンを描画します。

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

デフォルトのアクションを「action 」に設定します。

ツールボタンにデフォルトのアクションが設定されている場合、そのアクションによってボタンの以下のプロパティが定義されます:

autoRepeat などのその他のプロパティは、アクションの影響を受けません。

「defaultAction()」も参照してください 。

void QToolButton::setMenu(QMenu *menu)

指定された「menu 」をこのツールボタンに関連付けます。

ボタンのpopupMode に基づいてメニューが表示されます。

メニューの所有権はツールボタンには引き継がれません。

menu()も参照してください 。

[slot] void QToolButton::showMenu()

関連するポップアップメニューを表示(ポップアップ)します。そのようなメニューが存在しない場合、この関数は何も行いません。この関数は、ユーザーがポップアップメニューを閉じるまで戻りません。

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

プロパティ「QWidget::sizeHint 」のアクセス関数を再実装します。

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

QAbstractButton::timerEvent(QTimerEvent *e) の再実装です。

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

このシグナルは、指定されたaction がトリガーされたときに発せられます。

このアクションは、メニュー項目やキーボードショートカットなど、ユーザーインターフェースの他の部分に関連付けることもできます。このようにアクションを共有することで、ユーザーインターフェースの一貫性が高まり、実装の手間も軽減されることがよくあります。

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