Pyside6 QMenuBar

news2024/12/26 22:18:03

Pyside6 QMenuBar

  • QMenuBar使用
    • QMenuBar常用函数
    • QMenuBar常用信号
    • QMenuBar添加菜单项
    • QMenuBar添加图标
    • QMenuBar添加菜单点击事件

Pyside6 QMenuBar类提供了一个水平菜单栏,更多关于QMenuBar的使用可以参考下面的文档。

https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QMenuBar.html

QMenuBar使用

QMenuBar常用函数

函数作用
addMenu添加子菜单
setIcon添加图标
addAction添加菜单操作

QMenuBar常用信号

函数作用
triggered菜单项被点击时触发

QMenuBar添加菜单项

使用addMenu可以为菜单栏添加子菜单

self.menu_bar = self.menuBar() # 获取主对话框的菜单栏

menu_setting = self.menu_bar.addMenu("设置") # 添加菜单
menu_appearance_setting = menu_setting.addMenu("外观设置") # 嵌套子菜单
menu_appearance_setting.addAction('软件主题设置')   # 菜单添加addAction

menu_color_setting= menu_setting.addMenu("颜色设置")
menu_color_setting.addAction('背景颜色设置')
menu_color_setting.addAction('字体颜色设置')


menu_edit = self.menu_bar.addMenu("编辑") # 添加菜单
menu_edit.addAction('复制')
menu_edit.addAction('粘贴')
menu_edit.addAction('剪切')
menu_edit.addAction('撤销')

在这里插入图片描述

QMenuBar添加图标

使用setIcon函数可以为菜单添加相应的图标,需要注意的是,当一级菜单设置了图标之后,其标题就不会显示。

self.menu_bar = self.menuBar() # 获取主对话框的菜单栏

menu_setting = self.menu_bar.addMenu("设置") # 添加菜单

menu_appearance_setting = menu_setting.addMenu("外观设置") # 嵌套子菜单
menu_appearance_setting_action = menu_appearance_setting.addAction('软件主题设置')   # 菜单添加addAction

menu_color_setting = menu_setting.addMenu("颜色设置")
menu_backgroundcolor_setting_action = menu_color_setting.addAction('背景颜色设置')
menu_fontcolor_setting_action = menu_color_setting.addAction('字体颜色设置')

menu_setting.setIcon(QIcon(':/resources/resource/icon/setting.ico'))
menu_appearance_setting.setIcon(QIcon(':/resources/resource/icon/setting.ico'))
menu_color_setting.setIcon(QIcon(':/resources/resource/icon/setting.ico'))
menu_appearance_setting_action.setIcon(QIcon(':/resources/resource/icon/setting.ico'))
menu_backgroundcolor_setting_action.setIcon(QIcon(':/resources/resource/icon/setting.ico'))
menu_fontcolor_setting_action.setIcon(QIcon(':/resources/resource/icon/setting.ico'))

在这里插入图片描述

QMenuBar添加菜单点击事件

创建菜单的最终目标是能够响应鼠标的点击事件,triggered信号可以在鼠标点击的时候触发响应。如果上级菜单也设置点击事件,那么下一级菜单点击事件响应完之后,再响应上一级菜单的点击事件。

menu_appearance_setting_action.triggered.connect(self.menu_appearance_setting_func)
menu_backgroundcolor_setting_action.triggered.connect(self.menu_backgroundcolor_setting_func)
menu_fontcolor_setting_action.triggered.connect(self.menu_fontcolor_setting_func)
menu_edit_copy_action.triggered.connect(self.menu_edit_copy_setting_func)
menu_edit_paste_action.triggered.connect(self.menu_edit_paste_setting_func)
menu_edit_cut_action.triggered.connect(self.menu_edit_cut_setting_func)
menu_edit_undo_action.triggered.connect(self.menu_edit_undo_setting_func)


    def menu_appearance_setting_func(self):
        print("软件主题设置")
        
    def menu_backgroundcolor_setting_func(self):
        print("背景颜色设置")

    def menu_fontcolor_setting_func(self):
        print("字体颜色设置")

    def menu_edit_copy_setting_func(self):
        print("复制")

    def menu_edit_paste_setting_func(self):
        print("粘贴")

    def menu_edit_cut_setting_func(self):
        print("剪切")

    def menu_edit_undo_setting_func(self):
        print("撤销")

在这里插入图片描述
完成程序可以通过百度网盘下载
链接:https://pan.baidu.com/s/1do1TFgjjPRkloa_BeoMQng
提取码:rk9s

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

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

相关文章

Java中,如何在字符串后面补全空格

笔者在字符串有多个空格如何截取一文中写道了如何对字符串的多个空格进行截取,那么反过来,在调用三方接口,需要按照对方的报文格式,给左右的属性进行填充空格,以便对齐格式 例如这样: 那么我们应该怎么做…

《红蓝攻防对抗实战》六.常规反弹之利用NC在windows系统执行反弹shell

目录 一.利用NC工具在windows系统执行反弹shell 1. Windows正向连接shell 2.Windows反向连接shell 前文推荐: 《红蓝攻防对抗实战》一. 隧道穿透技术详解《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网《红蓝攻防对抗实战》三.内网探测协议出网…

SpringBoot项目中使用MybatisPlus

MybatisPlus的优点 使用时注意事项: 首先需要在spring boot启动类中添加MapperScan注解,扫描Mapper文件夹。 并且在POM文件引入坐标的时候不要同时引入Mybatis和Mybatis-Plus的坐标。容易出现版本差异不兼容。 日志配置 由于SQL的执行是不可见的,所以…

高通平台USB 2.0和USB 3.0接口充电器识别原理

1 BC 1.2 1.1 充电器类型探测 1)DCD:DP上有150mV( 10uA x 15K欧姆下拉电阻)的电压,DM上电压为0 2)Primary Det(DP发起检测DM): - DP上加载0.6V电压,DM上电压为…

Plonky2:最好的SNARKs和STARKs

1. 引言 Plonky2为Polygon团队2022年1月发起的项目。其定位为ZKP证明系统。 开源代码实现见: https://github.com/0xPolygonZero/plonky2(Rust 汇编) Plonky2可解锁当今2大主流ZKP类型——SNARKs和STARKs的扩容优势。 每个ZKP证明系统都有…

Selenium自动化测试中常见的异常详解

概要 开发人员在编写代码时总是会考虑到不同的应用场景,但也可能会出现实现效果不如预期的情况。同样的原则也适用于测试代码,编写测试代码的主要目的是测试现有产品的功能、发现错误并使产品100%无错误。 有句话说得好:"真相总是比小说…

SpringBoot使用@Value获取不到yaml中配置的值

在最近的开发中遇到一个问题,使用Value获取yml文件中配置的属性时始终获取不到值,一开始我以为是没有注入的问题,或者没有写setter方法的问题,后来我发现这些都都写了然后开始百度发现获取不到属性值有这么几个原因 获取不到值的原因 1.没有使用Component注解,也就是没有注入…

J2EE的N层体系结构

J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署到不同的机器中。 RMI/IIOP:RMI(Remote Method Invocation,远程方法调用)是Java的…

Qt Signals Slots VS QEvents - Qt跨线程异步操作性能测试与选取建议

相关代码参考:https://gitcode.net/coloreaglestdio/qtcpp_demo/-/tree/master/qt_event_signal 1.问题的由来 在对 taskBus 进行低延迟改造时,避免滥用信号与槽起到了较好的作用。笔者在前一篇文章中,叙述了通过避免广播式地播发信号&…

HarmonyOS鸿蒙原生应用开发设计- HarmonyOS Sans 字体

HarmonyOS设计文档中,为大家提供了独特的字体,开发者可以根据需要直接引用。 开发者直接使用官方提供的字体内容,既可以符合HarmonyOS原生应用的开发上架运营规范,又可以防止使用别人的字体侵权意外情况等,减少自主创…

大模型:机器学习的崭新时代

原创 | 文 BFT机器人 在机器学习领域,随着计算能力和数据规模的不断增长,大模型成为一种引人注目的技术。这些具有大规模参数和参数量的机器学习模型正在改变着我们对于人工智能的认识,大模型的出现使得机器学习模型能够处理更复杂的任务&am…

看完这篇 教你玩转渗透测试靶机Vulnhub——Mr-Robot :1

Vulnhub靶机Mr-Robot :1渗透测试详解 Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集:②:暴力破解:③:登入后台GetShell&#xff1a…

docker入门加实战—项目部署之DockerCompose

docker入门加实战—项目部署之DockerCompose 我们部署一个简单的java项目,可能就包含3个容器: MySQLNginxJava项目 而稍微复杂的项目,其中还会有各种各样的其它中间件,需要部署的东西远不止3个。如果手动的逐一部署&#xff0c…

RTSP/Onvif安防平台EasyNVR接入EasyNVS,出现报错“Login error, i/o deadline reached”的解决方法

EasyNVS管理平台具备汇聚与管理EasyGBS、EasyNVR等平台的能力,可以将接入的视频资源实现视频能力统一输出,并能进行远程可视化运维等管理功能,还能解决设备现场没有固定公网IP却需要在公网直播的需求。 有用户反馈,RTSP/Onvif协议…

C语言用筛选法求 100 之内的素数(挖去 1,被除数平方根)

完整代码: // 用筛选法求 100 之内的素数(挖去 1,被除数平方根) //筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来…

三刷操作系统之一文带你搞懂FreeRTOS——互斥信号量和递归互斥信号量

1.互斥信号量 互斥信号量其实就是一个拥有优先级继承的二值信号量,在同步的应用中(任务与任务或中断与任务之间的同步)二值信号量最适合。互斥信号量适合用于那些需要互斥访问的应用中。在互斥访问中互斥信号量相当于一个钥匙,当任务想要使用资源的时候就必须先获得这个钥匙…

apple MFI工厂认证,干货,为防止MFI工作人员查看,已设置VIP阅读

一开始以为审核特别严格,准备了好久,经历过了之后会发现很简单,1个小时完成了所有审核事项。 好好招待审计员,比如能接送就接送,到点吃饭就尽量约时间吃饭后再审计,找个正式的会议室,该摆盘水果就摆上,让审计员感觉到公司是很重视这次的MFI审核,但是不能贿赂发红包那…

第一章 | 计算机网络原理 谢希仁(第八版)_ 习题答案

文章目录 计算机网络原理 谢希仁(第八版)第一章习题答案1-011-021-031-041-051-061-071-081-091-101-111-121-131-141-151-161-171-181-191-201-211-221-231-241-251-261-271-281-291-301-311-321-331-341-351-36 计算机网络原理 谢希仁(第八…

Arm 警告其 GPU 驱动漏洞正被活跃利用

导读Arm 周一警告其 Mali 系列 GPU 驱动漏洞 CVE-2023-4211 正被活跃利用。 Mali GPU 被广泛用于 Google Pixels 等 Android 手机,Chromebook 等 Linux 设备。 本地非特权用户可利用该漏洞访问已释放的内存。访问不再使用的系统内存是将恶意代码加载到攻击者可执行…

MFC+OSG(Open Secene Graph)场景实现中文HUD(head up display)效果,防止中文乱码

MFCOSG(Open Secene Graph)场景实现中文HUD(head up display)效果,防止中文乱码 背景:为什么同时使用MFC和OSG 我建立了一个MFC工程,以OSG作为视图显示的基础,通过点击MFC菜单启动某些功能。因此&#xf…