QToolBar
是 Qt 框架中用于创建工具栏的类,它提供了一种方便的方式来组织和展示工具按钮、工具部件等。工具栏通常用于提供对应用程序功能的快速访问。
QToolBar
的基本用法:
-
创建工具栏:
cppQToolBar *toolbar = new QToolBar("MyToolbar", this);
-
添加工具按钮:
cppQAction *actionOpen = toolbar->addAction(QIcon(":/images/open.png"), "Open"); connect(actionOpen, &QAction::triggered, this, &MyClass::openFile);
这里,
open.png
是一个图标文件的路径,openFile
是一个槽函数,用于处理打开文件的操作。 -
添加分隔符:
cpptoolbar->addSeparator();
-
设置工具栏属性:
cpptoolbar->setMovable(false); // 设置工具栏不可移动 toolbar->setIconSize(QSize(32, 32)); // 设置图标大小
-
添加部件:
cppQWidget *customWidget = new QWidget; // 添加自定义部件到工具栏 toolbar->addWidget(customWidget);
QToolBar接口说明
QToolBar
是 Qt 框架中用于创建工具栏的类。它提供了一系列接口和功能,用于定制和管理工具栏的外观和行为。以下是一些常用的 QToolBar
接口:
构造函数
-
构造函数:
cppQToolBar(const QString &title, QWidget *parent = nullptr)
- 描述:构造一个具有给定标题的工具栏。
- 参数:
title
:工具栏的标题。parent
:父窗口指针。
常用成员函数
-
addAction
:cppQAction *addAction(const QIcon &icon, const QString &text = QString())
- 描述:添加一个带有图标和文本的动作按钮。
- 参数:
icon
:按钮的图标。text
:按钮的文本。
-
addSeparator
:cppQWidget *addSeparator()
- 描述:在工具栏中添加一个分隔符。
-
addWidget
:cppQWidget *addWidget(QWidget *widget)
- 描述:在工具栏中添加一个自定义部件。
- 参数:
widget
:要添加的部件。
-
clear
:cppvoid clear()
- 描述:清除工具栏上的所有动作和部件。
-
setMovable
:cppvoid setMovable(bool movable)
- 描述:设置工具栏是否可以移动。
-
setIconSize
:cppvoid setIconSize(const QSize &iconSize)
- 描述:设置工具栏中图标的大小。
-
setToolButtonStyle
:cppvoid setToolButtonStyle(Qt::ToolButtonStyle style)
- 描述:设置工具栏中工具按钮的样式。
-
setOrientation
:cppvoid setOrientation(Qt::Orientation orientation)
- 描述:设置工具栏的方向。
信号
-
actionTriggered
信号:cppvoid actionTriggered(QAction *action)
- 描述:当工具栏上的动作按钮被触发时发出该信号。
- 参数:
action
:被触发的动作按钮。
这个示例创建了一个简单的主窗口,其中包含一个工具栏,工具栏中有打开和保存按钮,以及一个自定义部件。点击按钮时会弹出消息框。
QToolBar开发实例
cpp
#include <QApplication>
#include <QMainWindow>
#include <QToolBar>
#include <QAction>
#include <QIcon>
#include <QMessageBox>
class MyClass : public QMainWindow {
Q_OBJECT
public:
MyClass(QWidget *parent = nullptr) : QMainWindow(parent) {
// 创建工具栏
QToolBar *toolbar = new QToolBar("MyToolbar", this);
toolbar->setIconSize(QSize(32, 32)); // 设置图标大小
// 添加打开按钮
QAction *actionOpen = toolbar->addAction(QIcon(":/images/open.png"), "Open");
connect(actionOpen, &QAction::triggered, this, &MyClass::openFile);
// 添加保存按钮
QAction *actionSave = toolbar->addAction(QIcon(":/images/save.png"), "Save");
connect(actionSave, &QAction::triggered, this, &MyClass::saveFile);
// 添加分隔符
toolbar->addSeparator();
// 添加自定义部件
QWidget *customWidget = new QWidget;
customWidget->setFixedSize(100, 30);
toolbar->addWidget(customWidget);
// 将工具栏添加到主窗口
addToolBar(toolbar);
}
private slots:
void openFile() {
QMessageBox::information(this, "Open", "Open file");
}
void saveFile() {
QMessageBox::information(this, "Save", "Save file");
}
};
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MyClass window;
window.show();
return a.exec();
}
#include "main.moc"
这个示例创建了一个简单的主窗口,其中包含一个工具栏,工具栏中有打开和保存按钮,以及一个自定义部件。点击按钮时会弹出消息框。