QT基础-工具栏学习

QT基础-工具栏学习

参考Qt学习笔记(六):工具栏

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent):QMainWindow(parent){
    
    
    this->resize(1200,1300);
    // 创建工具栏对象,工具栏可以有多个,菜单栏只能有一个
    QToolBar *tBar = new QToolBar(this);

    // 创建菜单栏对象
    QMenuBar *mBar = this->menuBar();
    // 添加菜单
    QMenu *fileMenu = mBar->addMenu("文件");
    QMenu *editMenu = mBar->addMenu("编辑");
    // 添加子菜单
    QAction *newFileMenu = fileMenu->addAction("新建文件");
    QAction *copyMenu = editMenu->addAction("复制");
    // 分割线
    setSeparat(fileMenu);
    setSeparat(editMenu);
    QAction *openMenu = fileMenu->addAction("打开新窗口");
    // 分割线
    setSeparat(fileMenu);
    QAction *findMenu = fileMenu->addAction("访达");
    // 将菜单栏中的菜单加入进工具栏
    tBar->addAction(newFileMenu);
    tBar->addAction(copyMenu);
    // 指定工具栏的默认停靠方式,不指定将会是停靠在左上角,
    // 工具栏可以自由拖拽
    this->addToolBar(Qt::LeftToolBarArea,tBar);
    // 设置工具栏的停靠位置,不设置这句话上下左右都可以停靠
    tBar->setAllowedAreas(Qt::LeftToolBarArea
                          |Qt::RightToolBarArea);
    // 设置工具栏禁止浮动,不设置,工具栏将会在界面的任意角落摆放(浮动)
    tBar->setFloatable(false);
    // 设置工具栏禁止移动,设置之后,无法再对工具栏进行拖拽
    tBar->setMovable(false);
    // 为菜单栏子菜单绑定触发事件
    connect(newFileMenu,&QAction::triggered,this,[=]{
    
    
        qDebug()<<"新建文件";
    });
    connect(copyMenu,&QAction::triggered,this,[=]{
    
    
        qDebug()<<"复制文件";
    });
    connect(openMenu,&QAction::triggered,this,[=]{
    
    
        qDebug()<<"打开新窗口";
    });
    connect(findMenu,&QAction::triggered,this,[=]{
    
    
        qDebug()<<"访达";
    });



}
MainWindow::~MainWindow()
{
    
    
    delete ui;
}
void MainWindow::setSeparat(QMenu *ptr){
    
    
    ptr->addSeparator();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>
#include <QDebug>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QToolBar>
QT_BEGIN_NAMESPACE
namespace Ui {
    
     class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    
    
    Q_OBJECT

public:
    int b;
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void setSeparat(QMenu *ptr=0);
private:
    Ui::MainWindow *ui;

};
#endif // MAINWINDOW_H

效果展示

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35140742/article/details/122769631