QToolBar详解

QToolBar 是 Qt 框架中用于创建工具栏的类,它提供了一种方便的方式来组织和展示工具按钮、工具部件等。工具栏通常用于提供对应用程序功能的快速访问。

QToolBar 的基本用法:

  1. 创建工具栏:

    cpp 复制代码
    QToolBar *toolbar = new QToolBar("MyToolbar", this);
  2. 添加工具按钮:

    cpp 复制代码
    QAction *actionOpen = toolbar->addAction(QIcon(":/images/open.png"), "Open");
    connect(actionOpen, &QAction::triggered, this, &MyClass::openFile);

    这里,open.png 是一个图标文件的路径,openFile 是一个槽函数,用于处理打开文件的操作。

  3. 添加分隔符:

    cpp 复制代码
    toolbar->addSeparator();
  4. 设置工具栏属性:

    cpp 复制代码
    toolbar->setMovable(false);  // 设置工具栏不可移动
    toolbar->setIconSize(QSize(32, 32));  // 设置图标大小
  5. 添加部件:

    cpp 复制代码
    QWidget *customWidget = new QWidget;
    // 添加自定义部件到工具栏
    toolbar->addWidget(customWidget);

QToolBar接口说明

QToolBar 是 Qt 框架中用于创建工具栏的类。它提供了一系列接口和功能,用于定制和管理工具栏的外观和行为。以下是一些常用的 QToolBar 接口:

构造函数

  1. 构造函数:

    cpp 复制代码
    QToolBar(const QString &title, QWidget *parent = nullptr)
    • 描述:构造一个具有给定标题的工具栏。
    • 参数:
      • title:工具栏的标题。
      • parent:父窗口指针。

常用成员函数

  1. addAction

    cpp 复制代码
    QAction *addAction(const QIcon &icon, const QString &text = QString())
    • 描述:添加一个带有图标和文本的动作按钮。
    • 参数:
      • icon:按钮的图标。
      • text:按钮的文本。
  2. addSeparator

    cpp 复制代码
    QWidget *addSeparator()
    • 描述:在工具栏中添加一个分隔符。
  3. addWidget

    cpp 复制代码
    QWidget *addWidget(QWidget *widget)
    • 描述:在工具栏中添加一个自定义部件。
    • 参数:
      • widget:要添加的部件。
  4. clear

    cpp 复制代码
    void clear()
    • 描述:清除工具栏上的所有动作和部件。
  5. setMovable

    cpp 复制代码
    void setMovable(bool movable)
    • 描述:设置工具栏是否可以移动。
  6. setIconSize

    cpp 复制代码
    void setIconSize(const QSize &iconSize)
    • 描述:设置工具栏中图标的大小。
  7. setToolButtonStyle

    cpp 复制代码
    void setToolButtonStyle(Qt::ToolButtonStyle style)
    • 描述:设置工具栏中工具按钮的样式。
  8. setOrientation

    cpp 复制代码
    void setOrientation(Qt::Orientation orientation)
    • 描述:设置工具栏的方向。

信号

  1. actionTriggered 信号:

    cpp 复制代码
    void 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"

这个示例创建了一个简单的主窗口,其中包含一个工具栏,工具栏中有打开和保存按钮,以及一个自定义部件。点击按钮时会弹出消息框。

相关推荐
阳光九叶草LXGZXJ30 分钟前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
春日见38 分钟前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
m0_748233171 小时前
30秒掌握C++核心精髓
开发语言·c++
无垠的广袤1 小时前
【VisionFive 2 Lite 单板计算机】边缘AI视觉应用部署:缺陷检测
linux·人工智能·python·opencv·开发板
阿波罗尼亚1 小时前
Kubectl 命令记录
linux·运维·服务器
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.2 小时前
Keepalived单播模式配置与实战指南
linux·服务器·负载均衡
风清扬_jd2 小时前
libtorrent-rasterbar-2.0.11编译说明
c++·windows·p2p
u0109272712 小时前
C++中的RAII技术深入
开发语言·c++·算法
IDC02_FEIYA2 小时前
Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解
linux·运维·服务器
江畔何人初2 小时前
kubectl apply与kubectl create的区别
linux·运维·云原生