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來設置圖標的顏色及文本色。
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);