知识回顾:

1.掌握的是QCalendarWidget日历控件

2.click点击事件(信号)触发

3.掌握日期的格式化QDate

本节知识视频教程

以下开始文字讲解:

一、案例:菜单

1.新建第一个窗体

2.一级菜单的配置

3.二级菜单的配置

4.利用菜单功能实现界面跳转,实现一个多窗体的打开

5.利用菜单功能实现温馨提示

效果图

二、开发思路

1.导入类QMainWindow。

2.使用Qmenu菜单类,这个菜单我们可以从窗体本身的方法进行获取。

3.利用Qmenu的功能,来实现多级菜单addAtion这是一个直接产生点击事件的行为;也可以用addMenu功能来增加子菜单。

4.每次都要弹出新窗体,这个新窗体,我们要制作成全局的窗体。

5.使用Qmessagebox来实现一个简单的帮助。

三、开发过程要点

这里的简便方法在哪里?

本例就是运用了QMainWindow本身功能的继承

载入菜单的简单功能

#利用窗体本身有的菜单栏功能进行载入

mymenu=self.menuBar()

mymenu.addAction(“新建”) 这里是要新建一个菜单按钮功能

mymenu.addAction("运行")

mymenu.addAction("调试")

mymenu.addAction("帮助")

菜单按钮行为的触发要点

actHelp=QAction("帮助",self)

利用Qaction的triggered信号实现菜单按钮的功能。这个信号也称为“触发”

actHelp.triggered.connect(self.ljyHelp)

mymenu.addAction(actHelp)

帮助按钮的显示内容,通过消息框进行提示。

msgbox=QMessageBox(QMessageBox.Information,"帮助","欢迎加老刘微信selidev交流",QMessageBox.Ok,self)

msgbox.show() 这里千万不要忘记show出来

子菜单的书写

这里要注意,直接将子菜单写在父级菜单的下方。

这样的好处,更多的也可以帮助我们进行二次理解。

子菜单的添加,通过addMenu功能

mymenu=self.menuBar()

mymenu.addMenu("文件")

子菜单的核心代码

这里要注意,子菜单的写法,是一级一级下来的,并且每一级的书写,都有一个范围对象。

mymenu=self.menuBar() 总菜单栏的返回对象

fileMenu=mymenu.addMenu(“文件”) 文件菜单的返回对象

fileMenu.addAction("新建")

recentFiles=fileMenu.addMenu(“最新的..”) 最新的…菜单项的返回对象

recentFiles.addAction("文件1")

recentFiles.addAction("文件2")

recentFiles.addAction("文件3")

对于新窗体的建议

建议一个窗体就写一个类。那么每一次新的窗体出现的时候,就是实例化这个类。

注意:想要让这个窗体被一直死循环监听,必须要把这个窗体作为程序的全局变量。否则就会出现闪退现象。

新建一个窗体的写法

1.直接写一个自定义的类窗体

2.将这个类窗体先不要show

3.将这个类窗体在main中进行实例化,作为全局变量

4.在槽的行为中,将这个窗体show出来。

新建多个窗体

1.这里的思想要实例化多个窗体,且这些窗体都是全局变量

2.这里我们要考虑使用列表作为全局变量来承载这些窗体对象

3.此时,我们需要在自定义的类中书写show的代码

四、总结强调

1.掌握菜单栏的书写

2.掌握菜单按钮的单击行为跳转功能

3.掌握子菜单的建立

4.掌握多窗体的书写注意点

本节教程源代码:import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QMainWindow,QAction,QMessageBox

class MyClass(QMainWindow): def __init__(self): super().__init__() self.initUI()

def initUI(self): self.setWindowTitle("刘金玉编程") self.setGeometry(300,100,400,300) #制作菜单 #利用窗体本身有的菜单栏功能进行载入 mymenu=self.menuBar() fileMenu=mymenu.addMenu("文件") actNewWin=QAction("新建窗体",self) actNewWin.triggered.connect(self.myNewWin)

fileMenu.addAction(actNewWin) recentFiles=fileMenu.addMenu("最新的..") recentFiles.addAction("文件1") recentFiles.addAction("文件2") recentFiles.addAction("文件3")

mymenu.addAction("运行") mymenu.addAction("调试") actHelp=QAction("帮助",self) actHelp.triggered.connect(self.ljyHelp) mymenu.addAction(actHelp)

self.show()

def myNewWin(self): list1.append(MyClass2())

def ljyHelp(self): msgbox=QMessageBox(QMessageBox.Information,"帮助","欢迎加老刘微信selidev交流",QMessageBox.Ok,self) msgbox.show()

class MyClass2(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle("编程创造城市http://bcczcs.com") self.show()

if __name__=="__main__": app=QApplication(sys.argv) mc=MyClass() list1=[]

app.exec_()

python menu实例_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体相关推荐

  1. python面向窗体的开发_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体

    知识回顾: 1.掌握的是QCalendarWidget日历控件 2.click点击事件(信号)触发 3.掌握日期的格式化QDate 本节知识视频教程 以下开始文字讲解: 一.案例:菜单 1.新建第一个 ...

  2. python进度条 pyqt_Python高级进阶#015 pyqt5进度条QProgressBar结合使用qbasictimer

    本期GUI界面,我们继续学习新的控件Qprogressbar. 知识回顾 1.滑动控件qslider 控件设置的关键:设置最大值.最小值,绝对范围. 2.核心类库QtCore,枚举类Qt 核心枚举类的 ...

  3. python高级教程_Python高级进阶教程

    这个系列的教程是在刘金玉编程的<零基础python教程>基础上的高级进阶应用. 教程列表: Python高级进阶教程001期 pycharm+anaconda3+pyqt5可视化界面开发环 ...

  4. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  5. python menu实例_python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例...

    PyQt5菜单栏控件QMenuBar介绍 QMenuBar在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象 QMenuBar类提供了一个可以包含一个或多个QAc ...

  6. python实现实例_Python 练习实例65

    Python 练习实例65 题目:一个最优美的图案. 程序分析:无. 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import math clas ...

  7. python前端框架实例_Python数据可视化:PyQt5 + ECharts框架实例

    引言 对于Python下桌面软件的开发已经有了很多数据可视化的库,如Matplotlib.Seaborn.Pyqtgraph.Plotly等等,但这些库更适合于后端程序员的软件开发. 实际上在前端网页 ...

  8. python中与label类似的控件是_Python高级进阶教程021期 pyqt5label控件进阶使用,设置兄弟控件,广告植入...

    知识回顾 1.掌握综合应用登录窗体 2.掌握密码设置setEchoMode 本节知识视频教程 以下开始文字讲解: 1.本节案例:快捷定位 1.把label控件上面的快捷键绑定到指定的另一个兄弟控件上 ...

  9. python gui界面实例_Python界面(GUI)编程PyQt5工具栏和菜单

    工具栏 工具栏是最常见的用户界面元素之一.工具栏是用于在应用程序中执行常见任务的图标和文本栏. Qt工具栏支持图标,文本的显示,还可以包含任何标准Qt小部件.但是,对于按钮,最好的方法是利用QActi ...

最新文章

  1. Android中的定时器AlarmManager
  2. 批量添加AD账号(三)
  3. 【LeetCode从零单排】No104 Maximum Depth of Binary Tree
  4. 济南长清区谋定特色展销中心 对话中国农民丰收节交易会
  5. 范数在机器学习中的作用_设计在机器学习中的作用
  6. linux下的打包和解压缩命令,浅析Linux打包压缩解压缩命令大全(收藏)
  7. 不同程序语言的注释和变量要求
  8. Exception in thread http-apr-8080-exec-
  9. 在Linux环境下,将Solr部署到tomcat7中,导入Mysql数据库数据, 定时更新索引
  10. 共模电感适用的频率_共模电感差模分量计算
  11. markdown公式编辑参考
  12. Atitit 引流矩阵与矩阵引流 推广方法 attilax总结
  13. 《时空幻境》Braid.v1.010.r2-RES-patch
  14. 数据中心的三种布线方式(EOR/MOR/TOR)
  15. 日企人力资源规章制度汇总
  16. R语言各种假设检验实例整理(常用)
  17. 科技爱好者周刊(第 160 期):中年码农的困境
  18. linux vim编辑器命令,Linux之VIM编辑器命令
  19. 五、settings 文件
  20. Java Scanner类的方法及用法(很详细)

热门文章

  1. Java高阶部分知识点汇总(三)-基本类型的包装类详讲
  2. 如何让excel表格排头一直都在_Excel表格技巧—如何计算矩阵相乘
  3. Pandas处理Excel文件源码学习
  4. 非平衡数据集的机器学习常用处理方法
  5. 使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控--转
  6. 使用 Spring Boot 快速构建 Spring 框架应用--转
  7. 12 个最佳的免费网络监控工具--转载
  8. spring调用存储过程
  9. 老赖凭本事骗钱,你有本事不被骗吗?
  10. Transformer-XL解读(论文 + PyTorch源码)