Qt窗口 | 工具栏 | QToolBar的使用及说明
一、工具栏
1. 什么是工具栏
工具栏是一种位于软件或应用程序界面上方的水平栏,通常包含一系列常用工具和命令按钮,用于快速访问和执行常用功能。
工具栏通常通过图标、文本或图标加文本的形式展示工具和命令,用户可以通过单击这些按钮来执行相应的操作,从而提高工作效率。
工具栏可以根据用户的需求进行自定义,或者根据软件的功能进行预设,以满足不同用户的操作习惯和工作需求。常见的工具栏包括格式工具栏、编辑工具栏、插入工具栏、绘图工具栏等。
二、QToolBar介绍
1. 简介
QToolBar是Qt框架中的一个控件,用于在工具栏中显示一组操作按钮和其他控件。它提供了一种方便的方式来组织和管理应用程序中的工具和操作。
QToolBar可以包含各种类型的控件,如按钮、下拉菜单、文本框等。可以通过添加和删除控件来自定义工具栏的内容。
QToolBar还提供了许多内置的功能,如可拖动的工具栏、可停靠的工具栏,以及工具栏按钮的自定义样式等。
使用QToolBar,开发人员可以轻松地创建一个功能丰富且易于使用的工具栏,以增强应用程序的用户体验和功能性。
2. 常用属性
3. 常用方法
三、代码创建工具栏
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仓库