- 博客主页: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. 什么是工具栏
工具栏是一种位于软件或应用程序界面上方的水平栏,通常包含一系列常用工具和命令按钮,用于快速访问和执行常用功能。
工具栏通常通过图标、文本或图标加文本的形式展示工具和命令,用户可以通过单击这些按钮来执行相应的操作,从而提高工作效率。
工具栏可以根据用户的需求进行自定义,或者根据软件的功能进行预设,以满足不同用户的操作习惯和工作需求。常见的工具栏包括格式工具栏、编辑工具栏、插入工具栏、绘图工具栏等。
二、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;
}
此时运行结果
2. 添加快捷项
在工具栏中添加快捷项等同于菜单项QAction()
,并使用addAction()函数添加到工具栏中
//创建快捷项等同于菜单项
QAction * action1 = new QAction("新建");
QAction * action2 = new QAction("保存");
//添加到工具栏中
toolbar->addAction(action1);
toolbar->addAction(action2);
此时运行结果
3. 设置工具栏图标
在阿里巴巴矢量图标库中进行查看合适的图标,如下图
将图片加入到qrc文件中,详细步骤参考文章:qrc文件机制
将图片添加到快捷项中
//创建快捷项等同于菜单项
QAction * action1 = new QAction("新建");
//使用setIcon添加图标
action1->setIcon(QIcon(":/new.png"));
QAction * action2 = new QAction("保存");
action2->setIcon(QIcon(":/save.png"));
此时运行结果
4. 设置提示信息(toolTip)
在上述操作中,将快捷项设置图标后,本来的文字没有消失,默认变成toolTip的形式存在
也可以通过setToolTip的方法改变提示信息
QAction * action2 = new QAction("保存");
action2->setIcon(QIcon(":/save.png"));
action2->setToolTip("这是保存按钮");
运行结果
5. 设置工具栏初始位置
在MainWindow 提供的addToolBar()中设置工具栏的默认停靠位置
在创建⼯具栏的同时,也可以设置⼯具栏的位置,
其默认位置是在窗⼝的最上⾯,其中可以设置的位置包括:
• Qt::LeftToolBarArea 停靠在左侧
• Qt::RightToolBarArea 停靠在右侧
• Qt::TopToolBarArea 停靠在顶部
• Qt::BottomToolBarArea 停靠在底部
• Qt::AllToolBarAreas 以上四个位置都可停靠
//添加工具栏
QToolBar * toolbar = new QToolBar();
//创建工具栏的同时,指定工具栏在左侧显示
this->addToolBar(Qt::LeftToolBarArea ,toolbar);
运行结果
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;
}
运行结果
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仓库