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 的工具欄包含用於主窗口其它部分關聯動作的工具按鈕。 |
另請參閱 QPushButton , QToolBar , QMainWindow , QAction ,和 GUI 設計手冊:按鈕 .
描述擁有菜單集或包含動作列錶的工具按鈕應如何彈齣菜單。
| 常量 | 值 | 描述 |
|---|---|---|
QToolButton::DelayedPopup
|
0
|
按住並保持工具按鈕嚮下一定時間後 (超時從屬樣式,見 QStyle::SH_ToolButton_PopupDelay ),顯示菜單。典型應用程序範例是某些 Web 瀏覽器工具欄中的 "後退" 按鈕。若用戶點擊它,瀏覽器隻需瀏覽迴上一頁麵。若用戶按住並保持按鈕嚮下一段時間,工具按鈕將展示包含當前曆史列錶的菜單 |
QToolButton::MenuButtonPopup
|
1
|
在此模式下,工具按鈕會顯示特殊箭頭以指示菜單的存在。顯示菜單,當按下按鈕的箭頭部分時。 |
QToolButton::InstantPopup
|
2
|
顯示菜單無延遲,當按下工具按鈕時。在此模式下,不觸發按鈕自身的動作。 |
此特性保持按鈕是否顯示箭頭,而不是正常圖標
這以圖標方式顯示箭頭為 QToolButton .
默認情況下,此特性被設為 Qt::NoArrow .
訪問函數:
| Qt::ArrowType | arrowType () const |
| void | setArrowType (Qt::ArrowType type ) |
此特性保持是否啓用自動上升。
默認被禁用 (即:false)。
此特性在 macOS 目前是忽略的,當使用 QMacStyle 時。
訪問函數:
| bool | autoRaise () const |
| void | setAutoRaise (bool enable ) |
描述用於工具按鈕的菜單的彈齣方式
默認情況下,此特性被設為 DelayedPopup .
訪問函數:
| QToolButton::ToolButtonPopupMode | popupMode () const |
| void | setPopupMode (QToolButton::ToolButtonPopupMode mode ) |
此特性保持工具按鈕是否僅顯示圖標、僅顯示文本、或在圖標旁邊/下麵顯示文本。
默認為 Qt::ToolButtonIconOnly .
要讓工具按鈕樣式遵循係統設置,將此特性設為 Qt::ToolButtonFollowStyle 。在 Unix,將使用來自桌麵環境的用戶設置。在其它平颱, Qt::ToolButtonFollowStyle 意味著僅圖標。
QToolButton 自動將此槽連接到相關信號在 QMainWindow 其中。
訪問函數:
| Qt::ToolButtonStyle | toolButtonStyle () const |
| void | setToolButtonStyle (Qt::ToolButtonStyle style ) |
構造空工具按鈕采用父級 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).
返迴默認動作。
另請參閱 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 .
關聯給定 menu 采用此工具按鈕。
菜單的展示根據按鈕的 popupMode .
不會將菜單所有權轉移給工具按鈕。
另請參閱 menu ().
[override virtual]
QSize
QToolButton::
sizeHint
() const
重實現訪問函數為特性: QWidget::sizeHint .
[override virtual protected]
void
QToolButton::
timerEvent
(
QTimerEvent
*
e
)
重實現: QAbstractButton::timerEvent (QTimerEvent *e).