创建QMainWindow菜单栏

创建项目

步骤大抵与之前一样

选择创建Qt Widgets Application

选择项目路径以及为项目命名

在选择基类时选择QMainWindow

g

选择构建套件

创建工具栏

cpp 复制代码
//mainwindow源文件(mainwindow.cpp)
#include <QMenuBar>
#include <QMenu>
#include <QAction>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QMenuBar* mb = new QMenuBar(this);    //创建菜单栏
    this->setMenuBar(mb);                 //添加菜单栏到窗口
    this->resize(400, 300);
    //创建菜单
    QMenu* menu_02 = new QMenu("编辑");
    QMenu* menu_01 = new QMenu("文件");      
    QMenu* menu_03 = new QMenu("工具");
    //添加菜单到菜单栏
    mb->addMenu(menu_01);
    mb->addMenu(menu_02);
    mb->addMenu(menu_03);
    //创建行为
    QAction* act_01 = new QAction("新建");
    QAction* act_02 = new QAction("保存");
    //添加行为到菜单
    menu_01->addAction(act_01);
    menu_01->addAction(act_02);
}

实现效果:

添加功能

背景知识:当点击界面中的Action时会触发出一个信号函数,将此信号与想要实现的槽函数连接即可

cpp 复制代码
//code
connect(act_01, &QAction::triggered, this, &QMainWindow::close);
相关推荐
cpp_learners40 分钟前
QML与C++交互之创建自定义对象
c++·qt·qml
尘世闲鱼41 分钟前
解数独(C++版本)
开发语言·c++·算法·解数独
kyle~1 小时前
C/C++字面量
java·c语言·c++
纨妙1 小时前
python打卡day59
开发语言·python
wuxuanok2 小时前
Web后端开发-请求响应
java·开发语言·笔记·学习
Sally璐璐2 小时前
IPSAN 共享存储详解:架构、优化与落地实践指南
开发语言·php
Mr.Winter`2 小时前
轨迹优化 | 基于激光雷达的欧氏距离场ESDF地图构建(附ROS C++仿真)
c++·人工智能·机器人·自动驾驶·ros·ros2·具身智能
csdn_aspnet2 小时前
C++ n条水平平行线与m条垂直平行线相交的平行四边形的数量
c++
像风一样的男人@2 小时前
python --货车装厢问题
开发语言·python
Humbunklung2 小时前
Rust枚举:让数据类型告别单调乏味
开发语言·后端·rust