• 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt窗口 | 工具栏 | QToolBar的使用及说明

文章编号:Qt 学习笔记 / 48


文章目录

  • Qt窗口 | 工具栏 | QToolBar的使用及说明
  • 一、工具栏
  • 1. 什么是工具栏
  • 二、QToolBar介绍
  • 1. 简介
  • 2. 常用属性
  • 3. 常用方法
  • 三、代码创建工具栏
  • 1. 创建工具栏
  • 2. 添加快捷项
  • 3. 设置工具栏图标
  • 4. 设置提示信息(toolTip)
  • 5. 设置工具栏初始位置
  • 6. 设置工具栏停放的边缘
  • 7. 设置工具栏的浮动
  • 8. 设置工具栏的移动
  • 9. 文件相关代码查看



一、工具栏

1. 什么是工具栏

工具栏是一种位于软件或应用程序界面上方的水平栏,通常包含一系列常用工具和命令按钮,用于快速访问和执行常用功能。

工具栏通常通过图标、文本或图标加文本的形式展示工具和命令,用户可以通过单击这些按钮来执行相应的操作,从而提高工作效率。

工具栏可以根据用户的需求进行自定义,或者根据软件的功能进行预设,以满足不同用户的操作习惯和工作需求。常见的工具栏包括格式工具栏、编辑工具栏、插入工具栏、绘图工具栏等。

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_qt


二、QToolBar介绍

1. 简介

QToolBar是Qt框架中的一个控件,用于在工具栏中显示一组操作按钮和其他控件。它提供了一种方便的方式来组织和管理应用程序中的工具和操作。

QToolBar可以包含各种类型的控件,如按钮、下拉菜单、文本框等。可以通过添加和删除控件来自定义工具栏的内容。

QToolBar还提供了许多内置的功能,如可拖动的工具栏、可停靠的工具栏,以及工具栏按钮的自定义样式等。

使用QToolBar,开发人员可以轻松地创建一个功能丰富且易于使用的工具栏,以增强应用程序的用户体验和功能性。

2. 常用属性

属性

说明

movable

设置工具栏是否可拖动,默认为true。

orientation

设置工具栏的方向,可以是Qt::Horizontal(水平方向)或Qt::Vertical

iconSize

设置工具栏上图标的大小。

toolButtonStyle

设置工具栏按钮的样式,可以是

Qt::ToolButtonIconOnly(仅图标)

Qt::ToolButtonTextOnly(仅文本)

Qt::ToolButtonIconText(图标和文本)

3. 常用方法

方法

说明

addAction(action)

在工具栏上添加一个操作按钮。

addSeparator()

在工具栏上添加一个分隔符。

addWidget(widget)

在工具栏上添加一个自定义控件。

clear()

清空工具栏上的所有控件。

insertWidget(before, widget)

在指定控件之前插入一个自定义控件。

removeAction(action)

从工具栏中移除一个操作按钮。

toggleViewAction()

返回一个切换工具栏显示与隐藏的操作按钮。

setFloatable(floatable)

设置工具栏是否可浮动。

setToolButtonStyle(style)

设置工具栏按钮的样式。

setIconSize(size)

设置工具栏上图标的大小。


三、代码创建工具栏

1. 创建工具栏

创建工具栏,并使用addToolBar() 函数添加到窗口中

调⽤ QMainWindow类 的 addToolBar() 函数来创建⼯具栏,每增加⼀个⼯具栏都需要调⽤⼀次该函
数。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QToolBar>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QToolBar * toolbar = new QToolBar();
    this->addToolBar(toolbar);
}

MainWindow::~MainWindow()
{
    delete ui;
}

此时运行结果

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_笔记_02


2. 添加快捷项

在工具栏中添加快捷项等同于菜单项QAction(),并使用addAction()函数添加到工具栏中

//创建快捷项等同于菜单项
QAction * action1 = new QAction("新建");
QAction * action2 = new QAction("保存");

//添加到工具栏中
toolbar->addAction(action1);
toolbar->addAction(action2);

此时运行结果

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_笔记_03


3. 设置工具栏图标

在阿里巴巴矢量图标库中进行查看合适的图标,如下图

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_笔记_04

将图片加入到qrc文件中,详细步骤参考文章:qrc文件机制

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_开发语言_05

将图片添加到快捷项中

//创建快捷项等同于菜单项
QAction * action1 = new QAction("新建");
//使用setIcon添加图标
action1->setIcon(QIcon(":/new.png"));
QAction * action2 = new QAction("保存");
action2->setIcon(QIcon(":/save.png"));

此时运行结果

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_学习_06


4. 设置提示信息(toolTip)

在上述操作中,将快捷项设置图标后,本来的文字没有消失,默认变成toolTip的形式存在
也可以通过setToolTip的方法改变提示信息

QAction * action2 = new QAction("保存");
action2->setIcon(QIcon(":/save.png"));
action2->setToolTip("这是保存按钮");

运行结果

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_笔记_07


5. 设置工具栏初始位置

在MainWindow 提供的addToolBar()中设置工具栏的默认停靠位置

在创建⼯具栏的同时,也可以设置⼯具栏的位置,
其默认位置是在窗⼝的最上⾯,其中可以设置的位置包括:
• Qt::LeftToolBarArea 停靠在左侧
• Qt::RightToolBarArea 停靠在右侧
• Qt::TopToolBarArea 停靠在顶部
• Qt::BottomToolBarArea 停靠在底部
• Qt::AllToolBarAreas 以上四个位置都可停靠

//添加工具栏
QToolBar * toolbar = new QToolBar();
//创建工具栏的同时,指定工具栏在左侧显示
this->addToolBar(Qt::LeftToolBarArea ,toolbar);

运行结果

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_笔记_08


6. 设置工具栏停放的边缘

使用 QToolBar类 提供的 setAllowedAreas()函数 设置停靠位置。如下:

其中可以设置的位置包括:
• Qt::LeftToolBarArea 停靠在左侧
• Qt::RightToolBarArea 停靠在右侧
• Qt::TopToolBarArea 停靠在顶部
• Qt::BottomToolBarArea 停靠在底部
• Qt::AllToolBarAreas 以上四个位置都可停靠

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QToolBar>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QToolBar * toolbar1 = new QToolBar();
    QToolBar * toolbar2 = new QToolBar();
    this->addToolBar(toolbar1);
    this->addToolBar(toolbar2);

    QAction* action1 = new QAction("文件");
    QAction* action2 = new QAction("构建");
    toolbar1->addAction(action1);
    toolbar2->addAction(action2);

    //只运行左侧停靠
    toolbar1->setAllowedAreas(Qt::LeftToolBarArea);
    //运行在左右停靠
    toolbar2->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
}

MainWindow::~MainWindow()
{
    delete ui;
}

运行结果

【Qt 学习笔记】Qt窗口 | 工具栏 | QToolBar的使用及说明_笔记_09


7. 设置工具栏的浮动

⼯具栏的浮动属性可以通过 QToolBar类 提供的 setFloatable()函数 来设置。

参数:
true:浮动
false:不浮动

//允许工具栏浮动
toolbar1->setFloatable(true);
//不允许工具栏浮动
toolbar1->setFloatable(false);

8. 设置工具栏的移动

设置⼯具栏的移动属性可以通过 QToolBar类 提供的 setMovable()函数 来设置。

参数:
true:移动
false:不移动

//允许工具栏移动
toolbar2->setMovable(true);
//不允许工具栏移动
toolbar2->setMovable(false);

9. 文件相关代码查看

相关代码请查看DuckBro的Gitee仓库