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();
});
// 显示 ToolButton
w.show();
return app.exec();
}
上述代码使用QWidget作为主窗口,布局为垂直布局,垂直布局中放入了一个QToolButton的对象。该QToolButton对象设置了如下内容:
- 设置图标和文本的位置关系
- 设置图标
- 设置弹出菜单
- 设置弹出菜单
运行结果截图: