QToolButton
是 Qt 框架中的一個類,是 QPushButton 的子類。它可以顯示一個可單擊的按鈕,并且可以與彈出菜單、圖標和文本等進行關聯。QToolButton的一些常見特性和用法包括:
- 設置文本:使用
setText()
函數設置按鈕上的文本。- 設置圖標:使用
setIcon()
函數設置按鈕上的圖標。可以使用資源文件中的圖標,也可以使用本地文件路徑或URL。- 設置彈出菜單:使用
setMenu()
函數設置按鈕的彈出菜單。可以通過創建QMenu
對象并將其添加到按鈕上。- 設置工具提示:使用
setToolTip()
函數設置按鈕的工具提示,鼠標懸停在按鈕上時顯示的文本。- 設置按鈕樣式:使用
setToolButtonStyle()
函數設置按鈕的圖標和文本的位置關系。例如,可以設置為Qt::ToolButtonTextBesideIcon
或Qt::ToolButtonTextUnderIcon
。- 連接信號和槽:使用信號
clicked()
來捕獲按鈕的點擊事件,并將其與槽函數連接起來。- 設置按鈕是否可用:使用
setEnabled()
函數設置按鈕是否可用,以便根據需要啟用或禁用按鈕。除了上述特性外,還有其他一些函數可用于調整按鈕的外觀和行為,例如設置按鈕的尺寸、設置按鈕的樣式表等。
QToolButton 提供了一種靈活的方法來創建可自定義的工具按鈕,可以在工具欄、菜單欄、對話框等界面元素中使用。可以根據項目的需求自由地使用和定制。
下面是一個QToolButton的示例,展示了常用的一些功能:
#include <QApplication>
#include <QToolButton>
#include <QMessageBox>
#include <QMenu>
#include <QWidget>
#include <QVBoxLayout>int main(int argc, char* argv[])
{QApplication app(argc, argv);QWidget w;w.setFixedSize(600, 400);QVBoxLayout layout;w.setLayout(&layout);QToolButton toolButton;toolButton.setFixedSize(150, 30);layout.addWidget(&toolButton);toolButton.setText("ToolButton");toolButton.setToolTip("This is a tool button");// 設置圖標和文本的位置關系toolButton.setToolButtonStyle(Qt::ToolButtonTextBesideIcon);toolButton.setPopupMode(QToolButton::MenuButtonPopup);// 設置圖標QIcon icon("./icon.png");toolButton.setIcon(icon);// 設置彈出菜單QMenu* menu = new QMenu(&toolButton);menu->addAction("Action 1");menu->addAction("Action 2");menu->setFixedWidth(toolButton.width());toolButton.setMenu(menu);// 連接點擊信號與槽函數QObject::connect(&toolButton, &QToolButton::clicked, [&]() {//QMessageBox::information(nullptr, "Clicked", "ToolButton clicked!");toolButton.showMenu();});// 顯示 ToolButtonw.show();return app.exec();
}
上述代碼使用QWidget作為主窗口,布局為垂直布局,垂直布局中放入了一個QToolButton的對象。該QToolButton對象設置了如下內容:
- 設置圖標和文本的位置關系
- 設置圖標
- 設置彈出菜單
- 設置彈出菜單
運行結果截圖: