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