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)

보호된 함수

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()로 조정할 수 있습니다. QMainWindowQToolBar 안에서 사용하는 경우 버튼은 QMainWindow 의 설정에 맞게 자동으로 조정됩니다( QMainWindow::setToolButtonStyle() 및 QMainWindow::setIconSize() 참조). 도구 버튼은 아이콘 대신 arrowType 로 지정된 화살표 기호를 표시할 수도 있습니다.

도구 버튼은 팝업 메뉴에서 추가 선택 사항을 제공할 수 있습니다. 팝업 메뉴는 setMenu()를 사용하여 설정할 수 있습니다. setPopupMode ()를 사용하여 메뉴가 설정된 도구 버튼에 사용할 수 있는 다양한 모드를 구성할 수 있습니다. 기본 모드는 웹 브라우저에서 '뒤로' 버튼과 함께 사용되기도 하는 지연 팝업 모드입니다. 버튼을 잠시 누르고 있으면 이동할 수 있는 페이지 목록이 표시된 메뉴가 팝업됩니다. 시간 제한은 스타일에 따라 달라집니다( QStyle::SH_ToolButton_PopupDelay 참조).

Qt Assistant 의 도구 버튼이 있는 도구 모음
Qt Assistant의 도구 모음에는 기본 창의 다른 부분에서 사용되는 작업과 연결된 도구 버튼이 포함되어 있습니다.

QPushButton, QToolBar, QMainWindow, QAction참조하세요 .

회원 유형 문서

enum QToolButton::ToolButtonPopupMode

메뉴가 설정되어 있거나 작업 목록이 포함된 도구 버튼의 메뉴 팝업 방법을 설명합니다.

Constant설명
QToolButton::DelayedPopup0도구 버튼을 일정 시간 동안 누르고 있으면(시간 제한은 스타일에 따라 다름, QStyle::SH_ToolButton_PopupDelay 참조) 메뉴가 표시됩니다. 일반적인 적용 예로는 일부 웹 브라우저의 도구 모음에 있는 '뒤로' 버튼이 있습니다. 사용자가 이 버튼을 클릭하면 브라우저는 단순히 이전 페이지로 돌아갑니다. 사용자가 버튼을 잠시 누르고 있으면 도구 버튼에 현재 기록 목록이 포함된 메뉴가 표시됩니다.
QToolButton::MenuButtonPopup1이 모드에서는 도구 버튼에 특수 화살표가 표시되어 메뉴가 있음을 나타냅니다. 버튼의 화살표 부분을 누르면 메뉴가 표시됩니다.
QToolButton::InstantPopup2도구 버튼을 누르면 메뉴가 지연 없이 표시됩니다. 이 모드에서는 버튼 자체의 동작이 트리거되지 않습니다.

속성 문서

arrowType : Qt::ArrowType

이 속성은 버튼에 일반 아이콘 대신 화살표를 표시할지 여부를 나타냅니다.

그러면 화살표가 QToolButton 의 아이콘으로 표시됩니다.

기본적으로 이 속성은 Qt::NoArrow 로 설정됩니다.

액세스 기능으로 설정됩니다:

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

autoRaise : bool

이 속성은 자동 올리기 활성화 여부를 저장합니다.

기본값은 비활성화(즉, 거짓)입니다.

이 프로퍼티는 현재 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 * 이벤트).

[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 * 이벤트).

[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

QToolButton 의 값으로 option 을 초기화합니다. 이 메서드는 하위 클래스에 QStyleOptionToolButton 이 필요하지만 모든 정보를 직접 채우고 싶지 않을 때 유용합니다.

QStyleOption::initFrom()도 참조하세요 .

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

다시 구현합니다: QWidget::leaveEvent(QEvent * 이벤트).

관련 메뉴를 반환하거나 메뉴가 정의되지 않은 경우 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 이 트리거될 때 발산됩니다.

이 동작은 메뉴 항목 및 키보드 단축키와 같은 사용자 인터페이스의 다른 부분과 연결될 수도 있습니다. 이러한 방식으로 동작을 공유하면 사용자 인터페이스의 일관성을 높이는 데 도움이 되며 구현할 작업도 줄어듭니다.

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