【Qt】工具栏

一.简述工具栏

⼯具栏是应⽤程序中集成各种功能实现快捷键使⽤的⼀个区域。

可以有多个,也可以没有,它并不是应⽤程序中必须存在的组件。

它是⼀个可移动的组件,它的元素可以是各种窗⼝组件,它的元素通常以图标按钮的⽅式存在。

下图为⼯具栏的⽰意图:

二.QToolBar

1.概念

QToolBar 是 Qt 框架中用于创建工具栏的类,它提供了一种方便的方式来组织和展示工具按钮、工具部件等。工具栏通常用于提供对应用程序功能的快速访问。

2.QToolBar的属性

属性说明
movable设置工具栏是否可拖动,默认为tre。
orientation设置工具栏的方向,可以是Qt::Horizontal(水平方向)或Qt::Vertical
iconSize设置工具栏上图标的大小。
toolButtonStyle设置工具栏按钮的样式,可以是
Qt::ToolButtonIconOnly(仅图标)
Qt::ToolButtonTextOnly(仅文本)
Qt::ToolButtonIconText(图标和文本)

3.QToolBar常用成员函数

API说明
addAction(action)在工具栏上添加一个操作按钮。
addSeparator()在工具栏上添加一个分隔符。
addWidget(widget)在工具栏上添加一个自定义控件。
clear()清空工具栏上的所有控件。
insertWidget(before, widget)在指定控件之前插入一个自定义控件。
removeAction(action)从工具栏中移除一个操作按钮。
toggleViewAction()返回一个切换工具栏显示与隐藏的操作按钮。
void setMovable(bool movable)设置工具栏是否可移动
setFloatable(floatable)设置工具栏是否可浮动。
setToolButtonStyle(style)设置工具栏按钮的样式。
void setIconSize(const QSize &iconSize)设置工具栏上图标的大小。

三.代码创建工具栏

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* act1=new QAction("new(&A)");
    QAction* act2=new QAction("save(&B)");

3. 设置工具栏图标

将图标存储到qrc文件:

1.在阿里巴巴矢量图标库中进行查看合适的图标,如下图
在这里插入图片描述

2.将图片加入到qrc文件中,详细步骤参考文章:qrc文件机制
在这里插入图片描述

3.将图片添加到快捷项中

 act1->setIcon(QIcon(":/new.png"));
    act2->setIcon(QIcon(":/save.png"));

4. 设置提示信息(toolTip)

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

 act1->setToolTip("new file button");
    act2->setToolTip("save file button");

5. 设置工具栏初始位置和工具栏停放的边缘

⼯具栏停靠位置的设置有两种⽅式。⼀种是在创建⼯具栏的同时指定停靠的位置,另⼀种是通过
QToolBar类提供的setAllowedAreas()函数来设置。⽅式⼀:创建⼯具栏的同时指定其停靠的位置。

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

⽅式⼆:使⽤QToolBar类提供的 setAllowedAreas()函数位置停靠位置。如下⽰例:

注:在创建⼯具栏的同时指定其停靠的位置,指的是程序运⾏时⼯具栏默认所在的位置;⽽使⽤setAllowedAreas()函数设置停靠位置,指的是⼯具栏允许其所能停靠的位置。

6. 设置工具栏的浮动

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

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

7. 设置工具栏的移动

若设置⼯具栏为不移动状态,则设置其停靠位置的操作就不会⽣效,所以设置⼯具栏
的移动属性类似于总开关的效果。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值