创建菜单栏、菜单、菜单项

news2025/2/27 5:29:30

1、QMainWindow窗口

1.1、创建菜单栏

this 代表的是 当前窗口(主窗口),也就是  当前窗口中添加/设置 菜单栏

this->resize(800,600);
//创建 菜单栏
QMenuBar *menuBar = new QMenuBar(this);
//将菜单栏 添加到主窗口的特殊位置
this->setMenuBar(menuBar);

1.2、创建菜单

让创建的菜单属于 this(当前主窗口),方便当主窗口释放的时候会带着释放整个 子控件,所以以后写的时候,直接让所有的子控件都属于 this(主窗口),方便释放

//创建菜单
QMenu *file = new QMenu("文件", this);
QMenu *edit = new QMenu("编辑", this);
//菜单栏中添加菜单
menuBar->addMenu(file);
menuBar->addMenu(edit);

1.3、创建菜单项

QList<QAction *>() 是匿名对象,QList<QAction *>()<<New<<Open 表示将 New 和 Open 多个菜单项 << (输入到)匿名对象 QList<QAction *>() 中 

//创建菜单项
QAction *New = new QAction("新建", this);
QAction *Open = new QAction("打开", this);
//菜单中添加菜单项
file->addAction(New);
//添加一个分隔符
file->addSeparator();
file->addAction(Open);
//一个菜单添加多个菜单项
edit->addActions(QList<QAction *>()<<New<<Open);

1.4、菜单项动起来

菜单项动起来,槽(消息接收者和槽函数)使用匿名对象完成,New 是 信号

//菜单项动起来
connect(New, &QAction::triggered,[&](){
    qDebug()<<"新建文件了"<<endl;
}  );
connect(Open, &QAction::triggered,[&](){
    qDebug()<<"打开文件了"<<endl;
}  );

1.5、设置菜单项的快捷方式

setShortcut 是设置快捷键,使用 setShortcut 给菜单项设置快捷方式
//设置菜单项的快捷方式
New->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_N));
Open->setShortcut(tr("Ctrl+o"));

1.6 、添加分隔符

在 两个菜单项 New 和 Open 之间添加,产生分隔符

//菜单中添加菜单项
file->addAction(New);
//添加一个分隔符
file->addSeparator();
file->addAction(Open);

1.7、设置工具栏

工具栏 中 设置 菜单项

//创建工具栏QToolBar
QToolBar *toolBar = new QToolBar();
//将工具栏 放入主窗口的特定位置
this->addToolBar(toolBar);
//将菜单项 放入工具栏中
toolBar->addAction(New);
toolBar->addAction(Open);
//工具栏默认可以浮动、可以停靠四周
//不允许工具栏浮动false
toolBar->setFloatable(false);
//只允许工具栏停靠左右
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

1.8、创建状态栏

//创建状态栏
QStatusBar *statusBar = new QStatusBar(this);
//将状态栏 添加到 主窗口中
this->setStatusBar(statusBar);
//在状态栏上 添加左侧信息
QLabel *label1= new QLabel("左侧提示信息", this);
statusBar->addWidget(label1);
//在状态栏上 添加右侧信息
QLabel *label2= new QLabel("右侧提示信息", this);
statusBar->addPermanentWidget(label2);

1.9、创建中心部件

//创建中心部件
//将文本框作为中心部件
QTextEdit *textEdit = new QTextEdit("这是中心部件", this);
this->setCentralWidget(textEdit);

1.10、创建铆接部件

//创建铆接部件
QDockWidget *dock = new QDockWidget("我是铆接部件",this);
//将铆接部件 添加到主窗口中
this->addDockWidget(Qt::AllDockWidgetAreas, dock);

2、资源文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第12届蓝桥杯省赛真题剖析-2020年12月20日Scratch编程初级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第123讲。 第12届蓝桥杯省赛举办了两次&#xff0c;这是2020年10月20日举行的第一次省赛初级组试题&#xff0c;比赛仍…

<STM32>STM32CubeMX-串口收发通信(DMA传输)(6)

&#xff1c;STM32&#xff1e;STM32CubeMX-串口收发通信(DMA传输)&#xff08;6&#xff09; 本节主要讲解串口DMA通信的功能&#xff0c;主要采用DMA接收数据的方式&#xff1b; DMA、串口的详细解说可参考《STM32F4XXX中文参考手册》&#xff0c;资料有详细的讲解和说明&am…

【机器视觉------标定篇(二)】三点成圆算法(求相机旋转中心)

应用场景 机器视觉项目应用中&#xff0c;相机安装在机器人上&#xff0c;并且需要定位产品返回坐标偏差以及角度偏差。 与九点标定配合使用&#xff0c;实现精准角度补偿。 算法输入 不共线的三点坐标 A&#xff08;X₁,Y₁&#xff09; &#xff0c;B&#xff08;X₂,Y₂&…

关于加解密方法报错java.security.InvalidKeyException: Illegal key size

1、找到自己的jdk安装路径下去&#xff1b; 2、找到java.security查看是否存在#crypto.policyunlimited,如果有把该#号去掉&#xff0c;注释打开&#xff1b; 3、若java.security文件中不存在#crypto.policyunlimited&#xff0c;则应该去从官网下载jce策略文件&#xff08;补丁…

springboot+vue旧物置换网站(完整源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的旧物置换网站。项目源码请联系风歌&#xff0c;文末附上联系信息 。 目前有各类成品java毕设&#xff0c;需要请看文末联系方式 。ja…

Python|基于粒子群和遗传算法的微电网优化调度

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Hadoop2.0伪分布式平台环境搭建

一、搭建环境的前提条件 环境&#xff1a;ubuntu-16.04 hadoop-2.6.0 jdk1.8.0_161。这里的环境不一定需要和我一样&#xff0c;基本版本差不多都ok的&#xff0c;所需安装包和压缩包自行下载即可。 因为这里是配置Hadoop的教程&#xff0c;配置Java以及安装VMware Tools就自行…

为什么2017年之后操作系统仍将扮演重要角色?

操作系统的历史虽然不像计算科学那么久远&#xff0c;但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统&#xff0c;这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。 在可预期的…

详解二叉搜索树 --- key模型和key/value模型

&#x1f340;作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;数据结构 一、认识二叉搜索树的key模型和key/value模型 key的模型是指每个节点只有一个键值&#xff0c;用于确定节点在树中的位置。节点的键值必须满足二叉搜索树的性质&#xff0c;即左子节点的键值小于…

SpringBoot 中使用Guava实现单机令牌桶限流

SpringBoot项目中如何对接口进行限流&#xff0c;有哪些常见的限流算法&#xff0c;如何优雅的进行限流。 首先就让我们来看看为什么需要对接口进行限流&#xff1f; 为什么要进行限流&#xff1f; 因为互联网系统通常都要面对大并发大流量的请求&#xff0c;在突发情况下&a…

你还还还没学会RabbitMQ?-----------RabbitMQ详解及快速入门(工作模式)

你像天外来物一样&#xff0c;求之不得&#xff08;咳咳&#xff0c;指offer&#xff09;&#x1f339; 文章目录什么是MQ&#xff1f;MQ的优势与劣势使用MQ需要满足的条件常见的MQ产品关于RabbitMQ生产者消费者工作模式订阅模式路由模式通配符模式什么是MQ&#xff1f; Messa…

机器学习——支持向量机的训练

目录 实践SVM分类 测试1-1​编辑 测试1-2 SVM核心 支持向量机函数 分类器SVC的主要属性: 分类器SVC的主要方法: 回归器SVR的主要属性: 支持向量机在鸢尾花分类中的应用 实践SVM分类 (1)参数C的选择: C为惩罚系数,也称为正则化系数: C越小模型越受限&#xff08;即单个数据…

【设计模式】从Mybatis源码中学习到的10种设计模式

文章目录一、前言二、源码&#xff1a;学设计模式三、类型&#xff1a;创建型模式1. 工厂模式2. 单例模式3. 建造者模式四、类型&#xff1a;结构型模式1. 适配器模式2. 代理模式3. 组合模式4. 装饰器模式五、类型&#xff1a;行为型模式1. 模板模式2. 策略模式3. 迭代器模式六…

长江流域9省2市可视化(不展示业务信息水质及真实断面)

一、处理9省2市地理信息为geojson集成到项目 shp转geojson关键Java代码 /*** shp转换为Geojson* param shpPath* return*/ public static Map shape2Geojson(String shpPath,String filePath){Map map new HashMap();FeatureJSON fjson new FeatureJSON();try{StringBuffer …

阶段二33_面向对象高级_IO[转换流,对象流]

知识点&#xff1a; 1.转换流&#xff1a;InputStreamReader&#xff0c;OutputStreamWriter2.对象流&#xff1a;ObjectInputStream&#xff0c;ObjectOutputStream一.转换流 1.转换流原理图 2.转换流概述 转换流就是来进行字节流和字符流之间转换的 InputStreamReader是从…

p75 应急响应-数据库漏洞口令检索应急取证箱

数据来源 必须知识点&#xff1a; 第三方应用由于是选择性安装&#xff0c;如何做好信息收集和漏洞探针也是获取攻击者思路的重要操作&#xff0c; 除去本身漏洞外&#xff0c;提前预知或口令相关攻击也要进行筛选。排除三方应用攻击行为&#xff0c;自查漏洞分析攻击者思路&a…

表白墙(服务器版)

文章目录一、准备工作二、前后端交互后端前端三、数据库版本一、准备工作 我们之前实现过这样一个表白墙&#xff0c;具体前端代码参考 表白墙 这篇文章 但是我们之前写的这个表白墙有一些问题&#xff1a; 1.如果我们刷新页面/重新开启&#xff0c;之前的数据就不见了 2.我们…

python pyc文件

参考自 What are pyc files in Python 和Python什么情况下会生成pyc文件&#xff1f; - 知乎 加上了我自己的理解 官方文档有这么解释 A program doesnt run any faster when it is read from a ‘.pyc’ or ‘.pyo’ file than when it is read from a ‘.py’ file; the o…

C生万物 | 一探指针函数与函数指针的奥秘

文章目录一、指针函数1、定义2、示例二、函数指针1、概念理清2、如何调用函数指针&#xff1f;3、两道“有趣”的代码题O(∩_∩)O< 第一题 >< 第二题 >4、函数指针数组概念明细具体应用&#xff1a;转移表✔5、指向函数指针数组的指针三、实战训练 —— 回调函数1、…

Pix4D软件简易使用方法

一、实验目的 学习无人机处理软件 Pix4D 的各项基本功能模块&#xff0c;掌握处理无人机影像的一般处理流程及质量评价。学习新建项目&#xff0c;对图像进行初始化操作以便后处理。学会制作正射影像图&#xff0c;生成质量报告&#xff0c;并对其进行分析。 二、实验内容 &…