【Qt】窗口预览(1)—— 菜单栏
窗口预览(1)1. QMainWindow2. QMenuBar——菜单栏2.1 创建菜单栏/将菜单栏添加到widget中2.2 addMenu——在菜单栏中添加菜单2.3 在菜单中添加选项2.4 添加快捷键2.5 支持嵌套添加菜单2.6 添加信号2.7 添加分割线和图标3. QToolBar——工具栏3.1 创建工具栏3.2 设置停靠位置3.3 设置是否可以浮动4. QStatusBar——状态栏4.1 在状栏中显示消息5. QDockWidget——浮动窗口5.1 浮动窗口的创建5.2 在浮动窗口添加控件1. QMainWindowQt窗口是通过QMainWindow类来实现的。QMainWindow是⼀个为用户提供主窗口程序的类,继承自QWidget类,并且提供了⼀个预定义的布局。QMainWindow包含⼀个菜单栏(menu bar)、多个工具栏(tool bars)、多个浮动窗(铆接部件,相当于创建一个子窗口)(dock widgets)、⼀个状态栏(status bar)和⼀个中心部件(central widget),它是许多应用程序的基础,如文本编辑器,图片编辑器等。如下图为 QMainwindow 中各组件所处的位置:我们之前创建文件的时候都是勾选的QWidget,但是这里我们要勾选QMainWindow此时我们打开创建好的文件的ui文件,我们会发现一些与以往不同的地方:在窗口的最上方出现了一个编辑框,这个编辑框就是设置菜单的地方,同时在左侧的窗口属性中再也不是空的了,而是自动创建好了一个menubar,statusbar和centeralwidget。2. QMenuBar——菜单栏我们在使用很多的工具的时候在最上方都会有一个菜单栏,大部分的操作都是可以通过菜单栏进行实现功能的,我们的Qt creator也是如此。并且一个主窗口最多只能有一个菜单栏。创建一个菜单栏的对象是QMenuBar,一个菜单栏中可以有很多的菜单(用QMenu创建一个个菜单),每个菜单可以有很多的选项(用QAction创建菜单选项)。2.1 创建菜单栏/将菜单栏添加到widget中方法一:我们可以直接通过ui界面的最上方直接进行设置,因为我们创建文件的时候,QMainWindow已经给我们创建好了menuBar.方法二:使用代码手动创建一个菜单栏,并将这个菜单栏设置到widget中,将菜单栏设置到widget,函数setMenuBar(QMenuBar*)注意:一般我们创建都是在堆上创建菜单栏,但是这里会出现一个问题,就是如果我们勾选了自动生成ui文件的话(一般我们都会进行勾选)当我们创建好了文件后,Qt会自动帮我们创建好一些代码,其中就包括了上面我们讲过了menubar,statusbar和centeralwidget这三个(这里我们就拿menubar来举例子,其他的也是一样的)如果我们直接使用QMenuBar * menu = new QMenuBar()的方式来创建菜单栏的话,就会导致内存泄漏,因为我们在创建好文件的时候Qt已经创建好了一菜单栏,而这里我们又手动的创建了一个菜单栏,就会把Qt帮我们创建的菜单栏给挤出对象树,所以当我们关闭窗口的时候对象树确实会帮我们delete掉我们手动创建的菜单栏,但是Qt帮我们创建的菜单栏就得不到delete就会造成内存泄漏,所以我们一般推提倡如下创建菜单栏:QMenuBar*menu=this-menuBar();// 如果QMenuBar存在,那么就直接获取,如果不在就创建虽然上述内存泄漏不会造成什么影响,因为当窗口关闭的时候说明进程已经结束了,那么所有的内存都会被回收,但是如果这样的代码出现在多窗口的程序里的时候(涉及到频繁的创建和销毁),那么上述的内存泄漏就会更严重一些。2.2 addMenu——在菜单栏中添加菜单通过QMenu创建菜单,使用addMenu将菜单添加到菜单栏中MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(new Ui::MainWindow){ui-setupUi(this);// 创建菜单栏QMenuBar*menu=this-menuBar();// 添加菜单栏this-setMenuBar(menu);// 创建菜单QMenu*menu1=newQMenu("文件");QMenu*menu2=newQMenu("工具");QMenu*menu3=newQMenu("帮助");// 将菜单添加到菜单栏中menu-addMenu(menu1);menu-addMenu(menu2);menu-addMenu(menu3);}2.3 在菜单中添加选项在Qt中可以通过QAction类创建出一个菜单选项,然后使用addAction函数添加到菜单中。// 创建选项QAction*opt1=newQAction("创建");QAction*opt2=newQAction("打开");QAction*opt3=newQAction("关闭");// 将选项添加到菜单中menu1-addAction(opt1);menu1-addAction(opt2);menu1-addAction(opt3);2.4 添加快捷键方法一:可以使用直接使用setShortcut函数来直接设置快捷键方法二:可以使用(+快捷键)(这样设置后直接使用alt + 快捷键即可使用快捷键)的方式直接进行设置快捷键MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(new Ui::MainWindow){ui-setupUi(this);// 创建菜单栏QMenuBar*menu=this-menuBar();// 添加菜单栏this-setMenuBar(menu);// 创建菜单QMenu*menu1=newQMenu("文件(F)");// 设置快捷键QMenu*menu2=newQMenu("工具(T)");QMenu*menu3=newQMenu("帮助(H)");// 将菜单添加到菜单栏中menu-addMenu(menu1);menu-addMenu(menu2);menu-addMenu(menu3);// 创建选项QAction*opt1=newQAction("创建");QAction*opt2=newQAction("打开");QAction*opt3=newQAction("关闭");// 将选项添加到菜单中menu1-

相关新闻

最火的前10名AI论文生成软件推荐!亲测好用!

最火的前10名AI论文生成软件推荐!亲测好用!

在当前市场上,AI论文生成平台层出不穷,为学术写作带来了极大的便利。但怎么选择合适的生成平台,又让很多人头疼,因为很多人还没接触过。今天我就为大家亲测了市场上比较热门的AI论文生成平台,给大家直接推荐&#xff0…

2026/7/4 9:23:52阅读更多 →
AI论文生成工具的工作原理、优势和应用前景

AI论文生成工具的工作原理、优势和应用前景

在当今信息爆炸的时代,快速获取高质量的文章和论文内容成为了许多人的需求。而AI论文生成工具作为AI技术的杰出代表,为我们提供了一种全新的解决方案。本文将以锐智AI为例深入探讨AI论文生成工具的工作原理、优势和应用前景,带您领略AI时代的…

2026/7/4 9:23:52阅读更多 →
GTA 5增强版终极菜单指南:解锁游戏隐藏功能的完整教程

GTA 5增强版终极菜单指南:解锁游戏隐藏功能的完整教程

GTA 5增强版终极菜单指南:解锁游戏隐藏功能的完整教程 【免费下载链接】YimMenuV2 Experimental menu for GTA 5: Enhanced 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenuV2 想要在GTA 5增强版中获得前所未有的游戏控制权吗?YimMenu…

2026/7/4 9:23:52阅读更多 →
BruteXSS:Python自动化XSS检测工具的原理、部署与实战应用

BruteXSS:Python自动化XSS检测工具的原理、部署与实战应用

1. 项目概述:为什么我们需要 BruteXSS? 在 Web 安全测试,尤其是渗透测试的日常工作中,XSS(跨站脚本攻击)漏洞的挖掘一直是个既基础又繁琐的活儿。手动测试?效率太低,一个表单可能有十…

2026/7/4 10:29:11阅读更多 →
AI重写操作系统应用:从代码生成到系统理解的工程范式转变

AI重写操作系统应用:从代码生成到系统理解的工程范式转变

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近在技术社区里,一个关于“AI重写操作系统应用”的话题引起了不小的讨论。很多人第一反应是:这怎么可能&a…

2026/7/4 10:29:11阅读更多 →
DeepMind面试简历写作指南:用可验证证据链替代技术堆砌

DeepMind面试简历写作指南:用可验证证据链替代技术堆砌

1. 项目概述:一张简历如何撬动顶级AI实验室的面试机会 “This Simple Resume Got Me a Google DeepMind Interview”——这个标题在技术社区刷屏时,我正帮第三位候选人重写简历。不是靠堆砌“精通TensorFlow/PyTorch/LLaMA微调”,也不是靠包装…

2026/7/4 10:29:11阅读更多 →
医疗AI数据分布偏移检测与实时监控实战

医疗AI数据分布偏移检测与实时监控实战

1. 项目概述:当AI在医院里“认错人”,问题往往不在代码,而在数据流的暗处 “70%的医疗AI错误源于隐藏的分布偏移”——这个标题不是危言耸听,而是我在过去三年参与6个临床AI落地项目后反复验证的结论。它直指当前医疗AI最顽固、最…

2026/7/4 10:29:11阅读更多 →
AI Agent测试与监控实战:构建全生命周期质量保障体系

AI Agent测试与监控实战:构建全生命周期质量保障体系

1. 项目概述:为什么AI Agent的测试与监控是“生死线”? 如果你正在开发或部署一个AI Agent,无论是客服助手、数据分析师还是自动化流程引擎,那么“它到底靠不靠谱?”这个问题,会像达摩克利斯之剑一样悬在头…

2026/7/4 10:29:11阅读更多 →
2025年AI如何无感接管日常生活

2025年AI如何无感接管日常生活

1. 这不是科幻预告,是2025年你手机相册里刚拍下的早餐照片 “AI正在悄悄接管你的日常生活”——这句话听起来像科技媒体的标题党,但如果你昨天用手机拍了一张煎蛋,今天它自动把蛋黄调得更亮、边缘锐化得恰到好处,还顺手把背景里乱…

2026/7/4 10:24:07阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/3 14:18:39阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/3 14:38:35阅读更多 →
端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

1. 项目概述:当算法工程师走进GTC26展厅,看到的不是芯片,而是“端到端”的呼吸节奏“端到端”这三个字,在GTC’26现场出现的频率,高得像NVLink带宽测试时的峰值曲线——它不再是一个论文里的技术路径选项,而…

2026/7/4 0:02:48阅读更多 →
缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考牙齿缺失是中老年人群中较为常见的口腔问题,不仅会造成咀嚼不便、进食受影响,长期还可能对营养摄入与日常社交带来困扰。义齿是改善缺牙问题的常用方式,目前市面上的义齿种类较多,…

2026/7/4 0:02:48阅读更多 →
STM32F091RC与LTC6904实现高精度方波信号生成

STM32F091RC与LTC6904实现高精度方波信号生成

1. 项目概述:LTC6904与STM32F091RC的精准方波生成方案在嵌入式系统开发中,精确的时钟信号和定时控制往往是项目成败的关键。LTC6904作为一款低功耗、高精度的可编程振荡器芯片,与STM32F091RC这款ARM Cortex-M0内核微控制器的组合,…

2026/7/4 0:02:48阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/4 1:16:56阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/4 2:33:55阅读更多 →