17.QT-Qt窗口-工具栏|状态栏|浮动窗口|设置停靠位置|设置浮动属性|设置移动属性|拉伸系数|添加控件(C++)

⼯具栏

⼯具栏是应⽤程序中集成各种功能实现快捷键使⽤的⼀个区域。可以有多个,也可以没有,它并不是应⽤程序中必须存在的组件。它是⼀个可移动的组件,它的元素可以是各种窗⼝组件,它的元素通常以图标按钮的⽅式存在。如下图为⼯具栏的⽰意图:
![[Pasted image 20250423103543.png]]

创建⼯具栏

调⽤QMainWindow类的addToolBar()函数来创建⼯具栏,每增加⼀个⼯具栏都需要调⽤⼀次该函数。
如添加两个⼯具栏:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QToolBar>
#include <QDebug>
  
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
  
    //工具栏手动创建
    QToolBar* toolBar = new QToolBar();
    this->addToolBar(toolBar);
  
    QAction* action1 = new QAction("保存");
    toolBar->addAction(action1);
    QAction* action2 = new QAction("打开");
    toolBar->addAction(action2);
  
    connect(action1, &QAction::triggered, this, &MainWindow::handle1);
    connect(action2, &QAction::triggered, this, &MainWindow::handle2);
}
  
MainWindow::~MainWindow()
{
    delete ui;
}
  
void MainWindow::handle1()
{
    qDebug() << "handle1";
}
  
void MainWindow::handle2()
{
    qDebug() << "handle2";
}

使用QToolBar表示工具栏对象
一个窗口可以有多个工具栏,也可以没有
工具栏往往也可以手动移动位置
添加菜单栏,使用的是setMenuBar
添加工具栏,使用的是addToolBar
菜单栏只能有一个.重复设置,新的替换旧的(set就包含了"替换")
工具栏,可以有多个.重复设置,就会出现多个工具栏不包含“替换”
![[Pasted image 20250423124419.png]]

    action1->setIcon(QIcon(":/save.png"));
    action2->setIcon(QIcon(":/new.png"));

QAction如果出现在工具栏上,也会产生图标覆盖文本这样的情况
会以toolTip的方式来存在
鼠标悬停上去的时候,就会显示出一段提示信息
另外也可以手动设置这里的toolTip
![[Pasted image 20250423124838.png]]

    action1->setToolTip("点击这里保存文件");

![[Pasted image 20250423125513.png]]

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QToolBar>
#include <QDebug>
  
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
  
    //创建菜单栏
    QMenuBar* menuBar = this->menuBar();
    this->setMenuBar(menuBar);
  
    //创建菜单
    QMenu* menu = new QMenu("文件");
    menuBar->addMenu(menu);
  
    //工具栏手动创建
    QToolBar* toolBar = new QToolBar();
    this->addToolBar(toolBar);
  
    QAction* action1 = new QAction("保存");
    QAction* action2 = new QAction("打开");
    action1->setToolTip("点击这里保存文件");
    action1->setIcon(QIcon(":/save.png"));
    action2->se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值