Qt之QToolButton

簡述

QToolButton類提供了用於命令或選項能夠快速訪問的按鈕,一般能夠用在QToolBar裏面。瀏覽器

工具按鈕和普通的命令按鈕不一樣,一般不顯示文本,而顯示圖標。markdown

詳細描述

當使用QToolBar::addAction()添加一個新的(或已存在的)QAction至工具欄時,工具按鈕一般被建立 。也能夠用一樣的方式構建工具按鈕和其它部件,並設置它們的佈局。框架

QToolButton支持自動浮起,在自動浮起模式中,只有在鼠標指向它的時候才繪製三維框架。當按鈕被用在QToolBar裏時,這個特徵會被自動啓用,能夠使用setAutoRaise()來改變。ide

按鈕的外觀和尺寸可經過setToolButtonStyle()和setIconSize()來調節。當在QMainWindow的QToolBar裏使用時,按鈕會自動地調節來適合QMainWindow的設置(見QMainWindow::setToolButtonStyle() 和QMainWindow::setIconSize())。工具

工具按鈕能夠提供一個彈出菜單,使用setMenu()來進行設置。經過setPopupMode()來設置菜單的彈出模式,缺省模式是DelayedPopupMode,這個特徵有時對於網頁瀏覽器中的「後退」按鈕有用,在按下按鈕一段時間後,會彈出一個顯示全部能夠後退瀏覽的可能頁面的菜單列表,默認延遲600毫秒,能夠用setPopupDelay()進行調整。佈局

經常使用接口

  • void setMenu(QMenu * menu)
    設置按鈕的彈出菜單。和QPushButton用法相似,詳見:Qt之QPushButtonthis

  • void setPopupMode(ToolButtonPopupMode mode)
    設置彈出菜單的方式,默認狀況下,設置爲DelayedPopup(延遲彈出)。spa

    枚舉QToolButton::ToolButtonPopupMode:.net

常量 描述
QToolButton::DelayedPopup 0 按下按鈕必定時間後(超時風格依賴,參考:QStyle::SH_ToolButton_PopupDelay),顯示菜單。一個典型案例:瀏覽器中工具欄的「後退」按鈕。
QToolButton::MenuButtonPopup 1 這種模式下,工具按鈕顯示一個特殊的箭頭以指示菜單是否存在,按下按鈕的箭頭部分時顯示菜單。
QToolButton::InstantPopup 2 按下工具按鈕時菜單顯示,無延遲。這種模式下,按鈕自身的動做不觸發。


  • void setToolButtonStyle(Qt::ToolButtonStyle style)
    設置按鈕風格,只顯示一個圖標,文本或文本位於圖標旁邊、下方。默認值是Qt::ToolButtonIconOnly。code

    枚舉Qt::ToolButtonStyle:

常量 描述
Qt::ToolButtonIconOnly 0 只顯示圖標
Qt::ToolButtonTextOnly 1 只顯示文本
Qt::ToolButtonTextBesideIcon 2 文本顯示在圖標旁邊
Qt::ToolButtonTextUnderIcon 3 文本顯示在圖標下邊
Qt::ToolButtonFollowStyle 4 遵循QStyle::StyleHint


  • void setArrowType(Qt::ArrowType type)
    設置按鈕是否顯示一個箭頭,而不是一個正常的圖標。這將顯示一個箭頭做爲QToolButton的圖標。
    默認狀況下,這個屬性被設置爲Qt::NoArrow。

    枚舉Qt::ArrowType:

常量
Qt::NoArrow 0
Qt::UpArrow 1
Qt::DownArrow 2
Qt::LeftArrow 3
Qt::RightArrow 4


效果:

這裏寫圖片描述

QToolButton *pButton = new QToolButton(this);
pButton->setArrowType(Qt::LeftArrow);
pButton->setText("Left Arrow");
// 文本位於圖標之下
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pButton->setStyleSheet("QToolButton{border: none; background: rgb(68, 69, 73); color: rgb(0, 160, 230);}");

這裏,咱們能夠經過樣式表color來設置圖標的顏色及文本色。

  • void setDefaultAction(QAction * action)
    設置默認的QAction,若是有一個默認的action,該action則會定義QToolButton的文本、圖標、TooTip等按鈕的屬性。

這裏寫圖片描述

QAction *pAction = new QAction(this);
pAction->setText(QString::fromLocal8Bit("一去丶二三裏"));
pAction->setIcon(QIcon(":/Images/logo"));
pButton->setIconSize(QSize(48, 48));
pAction->setToolTip(QString::fromLocal8Bit("青春不老,奮鬥不止!"));
pButton->setDefaultAction(pAction);
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

更多參考

相關文章
相關標籤/搜索