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

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

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

一、工具栏

1. 什么是工具栏

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


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


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

二、QToolBar介绍

1. 简介

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


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


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


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

2. 常用属性

image.png

3. 常用方法

image.png

三、代码创建工具栏

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仓库

目录
相关文章
|
2月前
|
C++ Windows
Qt 窗口置顶
Qt 窗口置顶
86 1
|
2月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
164 4
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
185 3
|
2月前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
65 3
|
2月前
【qt】视口和窗口坐标
【qt】视口和窗口坐标
21 0
|
2月前
|
算法 数据安全/隐私保护
【qt】启动窗口的玩法
【qt】启动窗口的玩法
25 0
|
2月前
【qt】多窗口开发
【qt】多窗口开发
50 0
|
3月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
163 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
2月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
61 0