一、前言
???????QToolButton類繼承于QAbstractButton,該部件為命令或選項(xiàng)提供了一個(gè)快速訪問按鈕,通常用于QToolBar中。
????????按鈕基類 QAbstractButton
????????QToolButton是一個(gè)特殊的按鈕,一般顯示文本,只顯示圖標(biāo),結(jié)合toolBar使用。它提供對(duì)特定命令或選項(xiàng)的快速訪問,與普通的命令按鈕相反,工具按鈕通常不顯示文本標(biāo)簽,而是顯示一個(gè)圖標(biāo)。
????????QToolButton工具按鈕通常是QToolBar在使用addAction()創(chuàng)建新的QAction實(shí)例時(shí)創(chuàng)建的。也可以以與任何其他小部件相同的方式構(gòu)造工具按鈕,并將它們與布局中的其他小部件一起排列。
QAction *act1 = new QAction("上");
QAction *act2 = new QAction("左");
QAction *act3 = new QAction("下");
QAction *act4 = new QAction("右");
QToolButton *btn1 = new QToolButton;
btn1->setArrowType(Qt::UpArrow);
QToolButton *btn2 = new QToolButton;
btn2->setArrowType(Qt::LeftArrow);
QToolButton *btn3 = new QToolButton;
btn3->setArrowType(Qt::DownArrow);
QToolButton *btn4 = new QToolButton;
btn4->setArrowType(Qt::RightArrow);
QToolBar *bar = new QToolBar(this);
bar->setFixedWidth(500);
bar->setFixedHeight(50);
bar->addAction(act1);
bar->addAction(act2);
bar->addAction(act3);
bar->addAction(act4);
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation),"");
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning),"");
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical),"");
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion),"");
bar->addWidget(btn1);
bar->addWidget(btn2);
bar->addWidget(btn3);
bar->addWidget(btn4);
????????QToolButton可以設(shè)置icon圖標(biāo),當(dāng)按鈕的功能不可用時(shí)使用禁用的像素圖,當(dāng)按鈕自動(dòng)抬起時(shí),由于鼠標(biāo)指針懸停在活動(dòng)像素圖上,顯示活動(dòng)像素圖。也可以使用arrowType顯示箭頭圖標(biāo),參考上文示例。
?二:QToolButton 類
1、arrowType
????????該屬性用于是否是箭頭圖標(biāo),參考上文示例。
Qt::ArrowType arrowType() const
void setArrowType(Qt::ArrowType type)
2、autoRaise
????????該屬性用于是否自動(dòng)升高模式。在自動(dòng)升高模式下,按鈕在鼠標(biāo)指向它時(shí)繪制3D幀。當(dāng)在QToolBar中使用按鈕時(shí),該功能會(huì)自動(dòng)打開,也就是說不要在QToolBar使用該按鈕之前調(diào)用setAutoRaise,否則會(huì)被重置回去。
bool autoRaise() const
void setAutoRaise(bool enable)
??????? 在示例中添加設(shè)置toolbutton1的autoRaise為false。
btn1->setAutoRaise(false);
3、popupMode
????????該屬性表示按鈕與彈出菜單的交互方式,默認(rèn)為QToolButton::DelayedPopup。
QToolButton::ToolButtonPopupMode popupMode() const
void setPopupMode(QToolButton::ToolButtonPopupMode mode)
QToolButton::ToolButtonPopupMode 描述 QToolButton::DelayedPopup 在按住工具按鈕一段時(shí)間后顯示菜單 QToolButton::MenuButtonPopup 工具按鈕顯示一個(gè)特殊的箭頭,以指示存在菜單。當(dāng)按下按鈕的箭頭部分時(shí),將顯示菜單。 QToolButton::InstantPopup 按下工具按鈕,菜單立即顯示。在這種模式下,按鈕本身的動(dòng)作不會(huì)被觸發(fā)
4、toolButtonStyle
????????該屬性用于確定圖標(biāo)和文本的顯示策略,默認(rèn)為Qt::ToolButtonIconOnly。
Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle style)
Qt::ToolButtonStyle 描述 Qt::ToolButtonIconOnly 只顯示圖標(biāo) Qt::ToolButtonTextOnly 只顯示文本 Qt::ToolButtonTextBesideIcon 文本在圖標(biāo)旁邊 Qt::ToolButtonTextUnderIcon 文本在圖標(biāo)下面 Qt::ToolButtonFollowStyle 跟隨系統(tǒng)
5、公共方法
1)menu
??????? 返回按鈕綁定的菜單。
QMenu *menu() const
?2)setMenu
??????? 設(shè)置按鈕綁定的菜單,菜單彈出策略由popupMode決定。
void setMenu(QMenu *menu)
3)defaultAction
? ? ? ? 返回默認(rèn)的動(dòng)作Action。
QAction *defaultAction() const
?4)setDefaultAction
??????? 設(shè)置一個(gè)默認(rèn)的action,這個(gè)動(dòng)作可能定義了按鈕的屬性,比如文本、圖標(biāo)、工具提示等。
void setDefaultAction(QAction *action)
6、公共槽函數(shù)
??1)showMenu
? ? ? ? 顯示菜單。如果沒有設(shè)置菜單,使用這個(gè)函數(shù)不會(huì)有任何反應(yīng)。在菜單關(guān)閉之前,這個(gè)函數(shù)不會(huì)返回。
void showMenu()
7、信號(hào)
1)triggered
????????這個(gè)信號(hào)在給定的Action被觸發(fā)時(shí)發(fā)出,參考上面的例子,我們定義了很多的Action。文章來源:http://www.zghlxwxcb.cn/news/detail-699318.html
????????該操作還可以與用戶界面的其他部分相關(guān)聯(lián),例如菜單項(xiàng)和鍵盤快捷鍵。以這種方式共享操作有助于使用戶界面更加一致,并且通常可以減少實(shí)現(xiàn)的工作量。文章來源地址http://www.zghlxwxcb.cn/news/detail-699318.html
void triggered(QAction *action)
到了這里,關(guān)于Qt應(yīng)用開發(fā)(基礎(chǔ)篇)——工具按鈕類 QToolButton的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!