QToolButton 類

QToolButton 類提供命令或選項的快速訪問按鈕,通常用於 QToolBar . 更多...

頭: #include <QToolButton>
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 )

保護函數

void initStyleOption (QStyleOptionToolButton * option ) const

重實現保護函數

virtual void actionEvent (QActionEvent * event ) override
virtual void changeEvent (QEvent * e ) override
virtual void enterEvent (QEvent * 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

詳細描述

工具按鈕是能對特定命令 (或選項) 提供快速訪問的特殊按鈕。

通常,工具按鈕的創建是在新的 QAction 實例被創建采用 QToolBar::addAction () 或將現有動作添加到工具欄采用 QToolBar::addAction ()。以如任何其它 Widget 的相同方式構造工具按鈕,並將它們同其它小部件一起排列在布局中是可能的。

工具按鈕的一種經典用法是選擇工具;例如,繪圖程序中的 pen 工具。這將通過使用 QToolButton 作為切換按鈕 來實現 (見 setCheckable ()).

QToolButton 支持自動上升。在自動上升模式下,按鈕纔繪製 3D 框架當鼠標指到它時。特徵會自動打開當按鈕用於 QToolBar 。改變它采用 setAutoRaise ().

工具按鈕的圖標被設為 QIcon 。這使之可能為禁用和活動狀態,指定不同像素圖。使用禁用像素圖,當按鈕功能不可用時。顯示活動像素圖,當因為鼠標指針懸停在活動像素圖上時按鈕會自動上升。

按鈕外觀和尺度的調節采用 setToolButtonStyle () 和 setIconSize ()。當用於 QToolBar QMainWindow ,按鈕被自動調節到 QMainWindow 的設置 (見 QMainWindow::setToolButtonStyle () 和 QMainWindow::setIconSize ())。而不是圖標,工具按鈕還可以顯示箭頭符號,指定采用 arrowType .

工具按鈕可以按彈齣菜單方式提供額外選擇。彈齣菜單的設置可以使用 setMenu ()。使用 setPopupMode () 以配置可用於具有菜單設置的工具按鈕的不同模式。默認模式為 DelayedPopupMode,有時用於 Web 瀏覽器的 "後退" 按鈕。按住並保持按鈕嚮下一段時間後,菜單彈齣展示要跳轉到的可能頁麵列錶。超時從屬樣式,見 QStyle::SH_ToolButton_PopupDelay .

Qt Assistant's toolbar with tool buttons
Qt Assistant 的工具欄包含用於主窗口其它部分關聯動作的工具按鈕。

另請參閱 QPushButton , QToolBar , QMainWindow , QAction ,和 GUI 設計手冊:按鈕 .

成員類型文檔編製

enum QToolButton:: ToolButtonPopupMode

描述擁有菜單集或包含動作列錶的工具按鈕應如何彈齣菜單。

常量 描述
QToolButton::DelayedPopup 0 按住並保持工具按鈕嚮下一定時間後 (超時從屬樣式,見 QStyle::SH_ToolButton_PopupDelay ),顯示菜單。典型應用程序範例是某些 Web 瀏覽器工具欄中的 "後退" 按鈕。若用戶點擊它,瀏覽器隻需瀏覽迴上一頁麵。若用戶按住並保持按鈕嚮下一段時間,工具按鈕將展示包含當前曆史列錶的菜單
QToolButton::MenuButtonPopup 1 在此模式下,工具按鈕會顯示特殊箭頭以指示菜單的存在。顯示菜單,當按下按鈕的箭頭部分時。
QToolButton::InstantPopup 2 顯示菜單無延遲,當按下工具按鈕時。在此模式下,不觸發按鈕自身的動作。

特性文檔編製

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 )

成員函數文檔編製

QToolButton:: QToolButton ( QWidget * parent = nullptr)

構造空工具按鈕采用父級 parent .

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

將默認動作設為 action .

若工具按鈕擁有默認動作,動作定義以下按鈕特性:

其它特性,譬如 autoRepeat ,不受動作影響。與正常命令按鈕相反,工具按鈕通常不展示文本標簽,取而代之展示圖標。

另請參閱 defaultAction ().

[slot] void QToolButton:: showMenu ()

展示 (彈齣) 關聯的彈齣菜單。若沒有這種菜單,此函數什麼都不做。此函數直到用戶關閉彈齣菜單後纔返迴。

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

此信號發射,當給定 action 被觸發。

動作還可以關聯用戶界麵的其它部分 (譬如:菜單項和鍵盤快捷鍵)。以這種方式共享動作有助於使用戶界麵更一緻,且實現起來工作量經常更少。

[虛擬] 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).

QAction *QToolButton:: defaultAction () const

返迴默認動作。

另請參閱 setDefaultAction ().

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

重實現: QWidget::enterEvent (QEvent *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.

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

void QToolButton:: setMenu ( QMenu * menu )

關聯給定 menu 采用此工具按鈕。

菜單的展示根據按鈕的 popupMode .

不會將菜單所有權轉移給工具按鈕。

另請參閱 menu ().

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

重實現訪問函數為特性: QWidget::sizeHint .

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

重實現: QAbstractButton::timerEvent (QTimerEvent *e).