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

【PyQt】18 -菜单等顶层操作

顶层界面的使用

  • 前言
  • 一、菜单栏
    • 1.1 代码
    • 1.2 运行结果
  • 二、工具栏
    • 2.1 代码
      • 几种显示方法
    • 2.2 运行结果
  • 三、状态栏
    • 3.1 代码
    • 3.2 运行结果
  • 总结


前言

1、介绍顶层菜单栏目的使用,但没有陆续绑定槽函数。
2、工具栏
3、状态栏


一、菜单栏

1.1 代码

'''
#Author :susocool
#Creattime:2024/3/24
#FileName:42-创建和使用菜单
#Description: '''
import sys,math
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class Menu( QMainWindow ):def __init__(self):super().__init__()self.setWindowTitle('创建和使用菜单')self.resize(400,300)bar = self.menuBar()     # 获取菜单栏file = bar.addMenu('文件')file.addAction("新建")        # 创建动作save = QAction("保存",self)        # 创建动作的另一种表示save.setShortcut("Ctrl + S")    # 设置快捷键file.addAction(save)edit = bar.addMenu("edit")edit.addAction("copy")edit.addAction("paste")quit = QAction("退出",self)file.addAction(quit)save.triggered.connect(self.process)def process(self,a):# print(a.text())   # text实际上是获得 bool类型,因此不需要print(self.sender().text())if __name__ == '__main__':app = QApplication(sys.argv)ui = Menu()ui.show()sys.exit(app.exec_())

1.2 运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、工具栏

工具栏默认按钮:只显示图标,将文本作为悬停提示

2.1 代码

'''
#Author :susocool
#Creattime:2024/3/24
#FileName:43-工具栏
#Description: '''
import sys,math
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class Toolbar(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('创建和使用菜单栏')self.resize(400,200)toolbar = self.addToolBar("File")# 规范化的话,应该创建一个Icon文件夹存放图片new = QAction(QIcon("./添加文件.jpg"),"添加文件",self)       # 创建在当前窗口上,文字可以变成悬停提示toolbar.addAction(new)open = QAction(QIcon("./打开文件.png"),"打开文件",self)toolbar.addAction(open)save = QAction(QIcon("./保存文件.jpg"),"保存文件",self)toolbar.addAction(save)toolbar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)# 槽函数toolbar.actionTriggered.connect(self.toolbuttonpressed)def toolbuttonpressed(self,a):print('按下的工具栏按钮是 ',a.text())if __name__ == '__main__':app = QApplication(sys.argv)ui = Toolbar()ui.show()sys.exit(app.exec_())

几种显示方法

在这里插入图片描述

        toolbar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)

图标和文本并存,此处选择在右侧展示
在这里插入图片描述
在其底部
在这里插入图片描述

2.2 运行结果

在这里插入图片描述

三、状态栏

状态栏:用于显示状态信息

3.1 代码

'''
#Author :susocool
#Creattime:2024/3/24
#FileName:44-状态栏
#Description: '''
import sys,math
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class Toolbar(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('创建和使用菜单栏')self.resize(400,200)bar = self.menuBar()file = bar.addMenu("File")  # 添加顶层菜单文件file.addAction("show")  # 添加动作file.triggered.connect(self.processTrigger) # 添加触发动作self.setCentralWidget(QTextEdit())	# 没实际用途的编辑界面self.statusBar = QStatusBar()   # 创建状态栏self.setStatusBar(self.statusBar)def processTrigger(self,q):if q.text() == "show":# 这里之前犯了个错误,不是statusBar()self.statusBar.showMessage(q.text() + "菜单被点击了",5000) # 显示5s之后会消失if __name__ == '__main__':app = QApplication(sys.argv)ui = Toolbar()ui.show()sys.exit(app.exec_())

3.2 运行结果

在这里插入图片描述
5s之后消失
在这里插入图片描述


总结

这篇文章依旧没有总结

相关文章:

  • blender插件笔记
  • shell实现查询进程号并批量kill(脚本)
  • Git学习笔记之基础
  • 2015年认证杯SPSSPRO杯数学建模D题(第二阶段)城市公共自行车全过程文档及程序
  • [深度学习]yolov8+pyqt5搭建精美界面GUI设计源码实现五
  • 推荐多样性 - 华为OD统一考试(C卷)
  • PEReDi 完全隐私的央行数字货币方案
  • SiLM8260ADCS-DG带米勒钳位功能 双通道隔离驱动器 完美解决了干扰发热问题
  • index.js:235 uView提示:maxDate不能小于当前时间
  • 100个openharmony开源demo:1.日历
  • ReactNative项目构建分析与思考之RN组件化
  • Git的使用记录+坑的处理
  • VTK9.2.0+Qt5.14.0 绘制点云
  • STM32F103 CubeMX 使用USB生成键盘设备
  • 蓝桥杯刷题(十四)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • CentOS7简单部署NFS
  • eclipse(luna)创建web工程
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • java8-模拟hadoop
  • Kibana配置logstash,报表一体化
  • mysql 数据库四种事务隔离级别
  • npx命令介绍
  • Odoo domain写法及运用
  • vue 配置sass、scss全局变量
  • Vultr 教程目录
  • 从零开始在ubuntu上搭建node开发环境
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 浏览器缓存机制分析
  • 区块链将重新定义世界
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 数据结构java版之冒泡排序及优化
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 用element的upload组件实现多图片上传和压缩
  • 走向全栈之MongoDB的使用
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • #{}和${}的区别?
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (52)只出现一次的数字III
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (五)MySQL的备份及恢复
  • .NET Core Web APi类库如何内嵌运行?
  • .net core 依赖注入的基本用发
  • .net MySql
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • ?
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [20150629]简单的加密连接.txt
  • [20160807][系统设计的三次迭代]
  • [8-27]正则表达式、扩展表达式以及相关实战