QToolButton類提供了用于命令或選項(xiàng)可以快速訪問(wèn)的按鈕,通常可以用在QToolBar里面。
工具按鈕和普通的命令按鈕不同,通常不顯示文本,而顯示圖標(biāo)。
當(dāng)使用QToolBar::addAction()添加1個(gè)新的(或已存在的)QAction至工具欄時(shí),工具按鈕通常被創(chuàng)建 。也能夠用一樣的方式構(gòu)建工具按鈕和其它部件,并設(shè)置它們的布局。
QToolButton支持自動(dòng)浮起,在自動(dòng)浮起模式中,只有在鼠標(biāo)指向它的時(shí)候才繪制3維框架。當(dāng)按鈕被用在QToolBar里時(shí),這個(gè)特點(diǎn)會(huì)被自動(dòng)啟用,可使用setAutoRaise()來(lái)改變。
按鈕的外觀和尺寸可通過(guò)setToolButtonStyle()和setIconSize()來(lái)調(diào)理。當(dāng)在QMainWindow的QToolBar里使用時(shí),按鈕會(huì)自動(dòng)地調(diào)理來(lái)合適QMainWindow的設(shè)置(見QMainWindow::setToolButtonStyle() 和QMainWindow::setIconSize())。
工具按鈕可以提供1個(gè)彈出菜單,使用SetMenu()來(lái)進(jìn)行設(shè)置。使用setPopupMode()來(lái)設(shè)置菜單的彈出模式,缺省模式是DelayedPopupMode,這個(gè)特點(diǎn)有時(shí)對(duì)網(wǎng)頁(yè)閱讀器中的“后退”按鈕有用,在按下按鈕1段時(shí)間后,會(huì)彈出1個(gè)顯示所有可以后退閱讀的可能頁(yè)面的菜單列表,默許延遲600毫秒,可以用setPopupDelay()進(jìn)行調(diào)劑。
void setMenu(QMenu * menu)
設(shè)置按鈕的彈出菜單。和QPushButton用法類似,詳見:Qt之QPushButton
void setPopupMode(ToolButtonPopupMode mode)
設(shè)置彈出菜單的方式,默許情況下,設(shè)置為DelayedPopup(延遲彈出)。
枚舉QToolButton::ToolButtonPopupMode:
常量 | 值 | 描寫 |
---|---|---|
QToolButton::DelayedPopup | 0 | 按下按鈕1定時(shí)間后(超時(shí)風(fēng)格依賴,參考:QStyle::SH_ToolButton_PopupDelay),顯示菜單。1個(gè)典型案例:閱讀器中工具欄的“后退”按鈕。 |
QToolButton::MenuButtonPopup | 1 | 這類模式下,工具按鈕顯示1個(gè)特殊的箭頭以唆使菜單是不是存在,按下按鈕的箭頭部份時(shí)顯示菜單。 |
QToolButton::InstantPopup | 2 | 按下工具按鈕時(shí)菜單顯示,無(wú)延遲。這類模式下,按鈕本身的動(dòng)作不觸發(fā)。 |
void setToolButtonStyle(Qt::ToolButtonStyle style)
設(shè)置按鈕風(fēng)格,只顯示1個(gè)圖標(biāo),文本或文本位于圖標(biāo)旁邊、下方。默許值是Qt::ToolButtonIconOnly。
枚舉Qt::ToolButtonStyle:
常量 | 值 | 描寫 |
---|---|---|
Qt::ToolButtonIconOnly | 0 | 只顯示圖標(biāo) |
Qt::ToolButtonTextOnly | 1 | 只顯示文本 |
Qt::ToolButtonTextBesideIcon | 2 | 文本顯示在圖標(biāo)旁邊 |
Qt::ToolButtonTextUnderIcon | 3 | 文本顯示在圖標(biāo)下邊 |
Qt::ToolButtonFollowStyle | 4 | 遵守QStyle::StyleHint |
void setArrowType(Qt::ArrowType type)
設(shè)置按鈕是不是顯示1個(gè)箭頭,而不是1個(gè)正常的圖標(biāo)。這將顯示1個(gè)箭頭作為QToolButton的圖標(biāo)。
默許情況下,這個(gè)屬性被設(shè)置為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");
// 文本位于圖標(biāo)之下
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pButton->setStyleSheet("QToolButton{border: none; background: rgb(68, 69, 73); color: rgb(0, 160, 230);}");
這里,我們可以通過(guò)樣式表color來(lái)設(shè)置圖標(biāo)的色彩及文本質(zhì)。
QAction *pAction = new QAction(this);
pAction->setText(QString::fromLocal8Bit("1去丶23里"));
pAction->setIcon(QIcon(":/Images/logo"));
pButton->setIconSize(QSize(48, 48));
pAction->setToolTip(QString::fromLocal8Bit("青春不老,奮斗不止!"));
pButton->setDefaultAction(pAction);
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);