Qt之QToolButton


簡述

QToolButton類提供了用於命令或選項可以快速訪問的按鈕,通常可以用在QToolBar里面。

工具按鈕和普通的命令按鈕不同,通常不顯示文本,而顯示圖標。

詳細描述

當使用QToolBar::addAction()添加一個新的(或已存在的)QAction至工具欄時,工具按鈕通常被創建 。也可以用同樣的方式構建工具按鈕和其它部件,並設置它們的布局。

QToolButton支持自動浮起,在自動浮起模式中,只有在鼠標指向它的時候才繪制三維框架。當按鈕被用在QToolBar里時,這個特征會被自動啟用,可以使用setAutoRaise()來改變。

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

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

常用接口

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

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

    枚舉QToolButton::ToolButtonPopupMode:

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


  • void setToolButtonStyle(Qt::ToolButtonStyle style)
    設置按鈕風格,只顯示一個圖標,文本或文本位於圖標旁邊、下方。默認值是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)
    設置按鈕是否顯示一個箭頭,而不是一個正常的圖標。這將顯示一個箭頭作為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);

更多參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM