当前位置: 首页 > news >正文

【PyQt】如何在mainwindow中添加菜单栏

@[toc]如何在mainwindow中添加菜单栏

如何在mainwindow中添加菜单栏

主要有两种方法:
1.直接创建mainwindow进行添加
2.使用ui文件加载添加
第二种方法更为常见,可以应用到实际

1.直接创建mainwindow进行添加

import sysfrom PyQt5.QtWidgets import QMainWindow, QLabel, QApplicationclass MyWindow(QMainWindow):def __init__(self):super().__init__()self.init_ui()def init_ui(self):label = QLabel("这是文字~~")label.setStyleSheet("font-size:30px;color:red")# 调用父类中的menuBar,从而对菜单栏进行操作menu = self.menuBar()# 如果是Mac的话,菜单栏不会在Window中显示而是屏幕顶部系统菜单栏位置# 下面这一行代码使得Mac也按照Windows的那种方式在Window中显示Menumenu.setNativeMenuBar(False)file_menu = menu.addMenu("文件")file_menu.addAction("新建")file_menu.addAction("打开")file_menu.addAction("保存")edit_menu = menu.addMenu("编辑")edit_menu.addAction("复制")edit_menu.addAction("粘贴")edit_menu.addAction("剪切")# 设置中心内容显示self.setCentralWidget(label)if __name__ == '__main__':app = QApplication(sys.argv)w = MyWindow()# 设置窗口标题w.setWindowTitle("我是窗口标题....")# 展示窗口w.show()# 程序进行循环等待状态app.exec()

2.使用ui文件加载添加

重点就是先加载ui文件,使用self.ui.menubar进行添加


import sysfrom PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5 import uic
class MyWindow(QMainWindow):def __init__(self):super().__init__()self.init_ui()def init_ui(self):# 主窗口的设置self.ui = uic.loadUi("./Main_window.ui")# 加载好ui文件之后再进行设置菜单栏menu = self.ui.menubar# menu.setNativeMenuBar(False)file_menu = menu.addMenu("文件")file_menu.addAction("新建")file_menu.addAction("打开")file_menu.addAction("保存")edit_menu = menu.addMenu("编辑")edit_menu.addAction("复制")edit_menu.addAction("粘贴")edit_menu.addAction("剪切")print(self.ui.__dict__)  # 查看ui文件中有哪些控件self.center() # 居中窗口def center(self):qr = self.frameGeometry()# 得到了主窗口大小print('qr:', qr)cp = QDesktopWidget().availableGeometry().center()# 获取显示器的分辨率,然后得到中间点的位置print('cp:', cp)qr.moveCenter(cp)# 然后把自己的窗口的中心点放到qr的中心点self.move(qr.topLeft())
if __name__=="__main__":app = QApplication(sys.argv)w = MyWindow()# 展示窗口w.ui.show()app.exec()

效果图

在这里插入图片描述

相关文章:

【PyQt】如何在mainwindow中添加菜单栏

[toc]如何在mainwindow中添加菜单栏 如何在mainwindow中添加菜单栏 主要有两种方法: 1.直接创建mainwindow进行添加 2.使用ui文件加载添加 第二种方法更为常见,可以应用到实际 1.直接创建mainwindow进行添加 import sysfrom PyQt5.QtWidgets import …...

浅谈云计算01 | 云计算服务的特点

在当今数字化时代,云计算作为一种强大的技术解决方案,正逐渐改变着企业和个人对信息技术的使用方式。本文将详细探讨云计算的五个主要特点,包括按需自助服务、广泛的网络接入、资源池化、快速弹性伸缩以及可计量服务。 一、按需自助服务 云…...

【开题报告】基于springboot的煤矿安全监测系统的设计与实现

【开题报告】基于springboot的煤矿安全监测系统的设计与实现 1.选题背景、研究目的及意义 1.1选题背景 煤炭是我国能源行业的重要组成部分,对国民经济具有支撑和推动作用。在煤炭生产过程中存在较高的安全风险,煤矿事故频发,这不仅对人员生…...

微服务中引入消息队列的利弊

微服务中引入消息队列的利弊 1、微服务架构中引入消息队列(Message Queue)的主要优势: 1.1 解耦(Decoupling) 服务之间不需要直接调用,通过消息队列实现松耦合 生产者和消费者可以独立扩展和维护 降低系统间的依赖性 1.2 异步处理(Asynchronous Proc…...

Redis缓存穿透、缓存雪崩和缓存击穿

一、缓存穿透 一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。一些恶意的请求会故意查询不存在的key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存…...

EF Core分页

Skip(3).Take(8) 最好显式指定排序规则需要知道满足条件的数据的总条数: 用IQueryable的复用 LongCount和Count页数:long pageCount (long)Math.Ceiling(count * 1.0 / pageSize); class Program {static async Task Main(string[] args){using (MyDbC…...

高效设计新选择!用StartAI打造各种风格主题的平铺素材图!

想要打造独特的POD(Print on Demand,按需打印)平铺素材图,却又苦于设计效率低下?别急,今天我来给大家分享一个高效方法,让你轻松秒制各种风格的POD平铺素材图! 具体操作步骤 打开ps…...

大数据技术Kafka详解 ⑤ | Kafka中的CAP机制

目录 1、分布式系统当中的CAP理论 1.1、CAP理论 1.2、Partitiontolerance 1.3、Consistency 1.4、Availability 2、Kafka中的CAP机制 C软件异常排查从入门到精通系列教程(核心精品专栏,订阅量已达600多个,欢迎订阅,持续更新…...

qml Emitter 详解

1、概述 Emitter是QML粒子系统中的一个关键组件,用于创建并发射逻辑粒子。这些逻辑粒子本身不会自动渲染,需要使用一个或多个ParticlePainter元素(如ImageParticle、ItemParticle等)来进行可视化显示。Emitter通过定义粒子的发射…...

【Docker】保姆级 docker 容器部署 MySQL 及 Navicat 远程连接

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. docker 容器部署 MySQL1.1 拉取mysql镜像1.2 启动容器1.3 进入容器1.4 使用 root 用户登录 2. Navicat 连…...

mybatis-spring @MapperScan走读分析

接上一篇文章:https://blog.csdn.net/qq_26437925/article/details/145100531, 本文注解分析mybatis-spring中的MapperScan注解,则将容易许多。 目录 MapperScan注解定义ConfigurationClassPostProcessor扫描注册beanDefinitionorg.mybatis.s…...

Mysql--架构篇--体系结构(连接层,SQL层,存储引擎层,文件存储层)

MySQL是一种广泛使用的关系型数据库管理系统(RDBMS),其体系结构设计旨在提供高效的数据存储、查询处理和事务管理。MySQL的体系结构可以分为多个层次,每个层次负责不同的功能模块。 MySQL的体系结构主要由以下几个部分组成&#…...

【0x005B】HCI_Write_Default_Erroneous_Data_Reporting命令详解

目录 一、命令概述 二、命令格式及参数 2.1. HCI_Write_Default_Erroneous_Data_Reporting命令格式 2.2. Erroneous_Data_Reporting 三、生成事件及参数 3.1. HCI_Command_Complete事件 3.2. 状态码(Status) 四、命令执行流程 4.1. 命令发起阶段(主机端) 4.2. 命…...

基于 Python 的学生成绩管理系统设计与实现

标题:基于 Python 的学生成绩管理系统设计与实现 内容:1.摘要 摘要:本文介绍了一个基于 Python 的学生成绩管理系统的设计与实现。该系统旨在提高学生成绩管理的效率和准确性,方便教师和学生进行成绩查询和分析。本文详细描述了系统的设计思路、功能模块…...

【Apache Doris】周FAQ集锦:第 29 期

引言 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见问题。 通过这个每周 FAQ 栏目,希望帮助社…...

【C】初阶数据结构3 -- 单链表

之前在顺序表那一篇文章中,提到顺序表具有的缺点,比如头插,头删时间复杂度为O(n),realloc增容有消耗等。而在链表中,这些问题将得到解决。所以在这一篇文章里,我们将会讲解链表的定义与性质,以及…...

Autodl安装tensorflow2.10.0记录

首先租用新实例(我选的是3080*2卡),由于基础镜像中没有2.10.0版本,选miniconda3的基础环境 创建虚拟环境:conda create --name xxx python3.8(环境名)激活虚拟环境:conda activate x…...

【Rust】常见集合

目录 思维导图 一、Rust常用集合 1. Rust标准库中的集合概述 2. 常用集合类型 2.1 向量(Vector) 2.2 字符串(String) 2.3 哈希映射(Hash Map) 二、向量(Vec) 1. 向量的概述…...

SpiderFlow平台v0.5.0之引入selenium插件

引入selenium插件 首先到码云下载插件点击下载​编辑到本地并导入到工作空间或安装到maven库在spider-flow/spider-flow-web/pom.xml中引入插件 <!-- 引入selenium插件 --> <dependency><groupId>org.spiderflow</groupId><artifactId>spider-…...

git push命令

git push 常用命令 1. 拉取远程仓库最新数据 使用 git fetch git fetch作用&#xff1a; 获取远程仓库的最新数据&#xff08;包括分支、标签等&#xff09;&#xff0c;但不会修改本地工作目录。 结果&#xff1a; 仅更新远程分支&#xff08;如 origin/main&#xff09;的…...

智能车竞赛备赛利器:用快马AI快速搭建算法仿真原型

智能车竞赛备赛利器&#xff1a;用快马AI快速搭建算法仿真原型 参加智能车竞赛的同学都知道&#xff0c;算法调试和硬件交互是最耗时的环节之一。传统开发流程中&#xff0c;光是搭建仿真环境就要花上好几天&#xff0c;更别说反复调试参数了。最近我发现InsCode(快马)平台能帮…...

如何永久保存微信聊天记录:WeChatMsg本地化数据管理完全指南

如何永久保存微信聊天记录&#xff1a;WeChatMsg本地化数据管理完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...

ExplorerPatcher使用指南:3步恢复Windows经典界面体验

ExplorerPatcher使用指南&#xff1a;3步恢复Windows经典界面体验 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher ExplorerPatcher是一款强大的…...

2.4.快速排序——先分区再递归,为什么它平均这么快却可能退化?

2.4.快速排序——先分区再递归&#xff0c;为什么它平均这么快却可能退化&#xff1f; 系列&#xff1a;搜索与排序 | 第 4 篇&#xff0c;共 16 篇 难度&#xff1a;⭐⭐⭐☆☆ 中等 标签&#xff1a;排序 快速排序 分治 随机化 三路快排 上一篇&#xff1a;2.3.插入排序——像…...

山西口碑好的实体店获客公司哪家可靠

在山西&#xff0c;实体店主们都在为如何有效获客而烦恼。随着市场竞争的加剧&#xff0c;选择一家可靠的获客公司至关重要。今天&#xff0c;我们就来探讨一下山西口碑好的实体店获客公司&#xff0c;重点介绍中谷云&#xff08;厦门&#xff09;大数据科技有限公司&#xff0…...

5分钟掌握ImStudio:免费高效的实时GUI布局设计终极方案

5分钟掌握ImStudio&#xff1a;免费高效的实时GUI布局设计终极方案 【免费下载链接】ImStudio Real-time GUI layout designer for Dear ImGui 项目地址: https://gitcode.com/gh_mirrors/im/ImStudio 你是否曾经为调试用户界面而反复编译代码&#xff1f;是否厌倦了在代…...

Spring Data测试终极指南:Testcontainers集成测试与Mock数据策略详解

Spring Data测试终极指南&#xff1a;Testcontainers集成测试与Mock数据策略详解 【免费下载链接】spring-data-examples Spring Data Example Projects 项目地址: https://gitcode.com/gh_mirrors/sp/spring-data-examples Spring Data测试是确保数据访问层可靠性的关键…...

【DIY小记】解决MacOS上Edge浏览器bilibili全屏卡顿的问题

近日笔者发现自己Macbook-Pro播放B站视频&#xff0c;全屏的时候必然卡顿&#xff0c;退出全屏就没事。笔者电脑的参数是&#xff1a; 芯片&#xff1a;M3系统&#xff1a;Tahoe 26.4浏览器&#xff1a;Edge 到网上一查发现《Edge浏览器在MacOS 26(Tahoe)系统上看B站卡顿》一…...

HarmonyOS 6学习:语音识别准确率提升与错误纠正方案

引言 在HarmonyOS 6应用开发中&#xff0c;语音识别能力已成为构建智能交互体验的核心技术。随着AI技术的快速发展&#xff0c;语音识别已广泛应用于教育、办公、智能家居等多个场景。然而&#xff0c;在实际开发过程中&#xff0c;开发者常面临一个普遍问题&#xff1a;语音识…...

八大网盘直链提取终极指南:突破客户端限制的JavaScript神器

八大网盘直链提取终极指南&#xff1a;突破客户端限制的JavaScript神器 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 /…...