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