问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/m0_74014525/article/details/139119244

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

一、工具栏

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号