下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第基于PyQt5实现状态栏(statusBar)显示和隐藏功能首先,讲述要解决的两个问题以及解决问题的代码:
1、将鼠标放置于菜单栏上状态栏永久消失的问题(这个问题需要仔细观察才能注意到)
#此覆盖父类函数:覆盖方法;为了克服将鼠标放置于菜单栏上状态栏就消失的问题;
defevent(self,QEvent):
ifQEvent.type()==QEvent.StatusTip:
ifQEvent.tip()=="":
QEvent=QStatusTipEvent("ready!")#此处为要始终显示的内容
returnsuper().event(QEvent)
2、控制状态栏显示和隐藏的问题
deftoggleMenu(self,state):#自定义事件函数
print(state)
#ifstate:
#self.statusBar().showMessage("ready!")
#else:
#self.statusBar().showMessage("")
#ifstate:#控制状态栏是否显示,
#self.statusbar().show()#此处是错误示例
#else:
#self.statusbar().hide()
ifstate:#应该使用statusBar()而不是statusbar
self.statusBar().show()
else:
self.statusBar().hide()
最近学习pyqt5教程,也是别人翻译的,总的也是错误多多,应该直接看原版的,充分表明英语很重要啊
贴上全部代码:
importsys
fromPyQt5.QtWidgetsimportQMainWindow,QApplication,QAction,qApp,QMenu
fromPyQt5.QtGuiimportQIcon,QStatusTipEvent
classmain_window(QMainWindow):
def__init__(self):
super().__init__()
self.initUI()
definitUI(self):
#可以设置动作的图标,文字显示;强大
exitAct=QAction(QIcon("/Users/zuozhe/PycharmProjects/Soft-Video/images/m4.png"),"退出",self)
exitAct.setShortcut("Ctrl+Q")#设置快捷键
exitAct.setToolTip("ExitApplication")#提示
exitAct.triggered.connect(qApp.exit)#绑定退出事件
status=self.statusBar()#创建状态栏
status.showMessage("ready!")#显示消息
#菜单栏
#文件菜单栏
menubar=self.menuBar()
menubar.setNativeMenuBar(False)#MACOS下需要设置此句话
fileMenu=menubar.addMenu("File")#主菜单File
impMenu=QMenu("Import",self)#创建菜单项
impAct=QAction("ImportEmail",self)#Import菜单下有子菜单ImportEmail
impMenu.addAction(impAct)
newAct=QAction("New",self)
#就差给Action(动作)绑定触发事件了
fileMenu.addAction(newAct)#将两个菜单项加入到File主菜单栏下
fileMenu.addMenu(impMenu)
fileMenu.addAction(exitAct)#绑定File下的菜单项
#编辑菜单栏
editMenu=menubar.addMenu("Edit")
#视图菜单栏
viewMenu=menubar.addMenu("View")
#勾选菜单
viewstatAct=QAction("是否显示状态栏",self,checkable=True)
viewstatAct.setToolTip("Viewstatusbar")
viewstatAct.setChecked(True)
viewstatAct.triggered.connect(self.toggleMenu)#触发链接事件;toggleMenu是自定义函数
viewMenu.addAction(viewstatAct)
#设置窗口的位置和大小
self.setGeometry(300,300,500,600)
self.setWindowTitle("主窗口的菜单栏和工具栏")
self.show()
#此覆盖父类函数:覆盖方法;为了克服将鼠标放置于菜单栏上状态栏就消失的问题;
defevent(self,QEvent):
ifQEvent.type()==QEvent.StatusTip:
ifQEvent.tip()=="":
QEvent=QStatusTipEvent("ready!")#此处为要始终显示的内容
returnsuper().event(QEvent)
deftoggleMenu(self,state):#自定义事件函数
print(state)
#ifstate:
#self.statusBar().showMessage("ready!")
#else:
#self.statusBar().showMessage("")
#ifstate:#控制状态栏是否显示,
#self.statusbar().show()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年国家开发银行(青岛市分行)人员招聘笔试备考题库及答案详解
- 2026重庆百业兴物业管理有限责任公司招聘2人笔试参考题库及答案详解
- 2026年淮北市相山区中小学新任教师公开招聘10名笔试备考试题及答案详解
- 2026年衢州龙游县公开招聘卫生专业技术人员26人笔试模拟试题及答案详解
- 2026浙江台州市玉环市城更建设开发有限公司招聘编外人员3人笔试参考题库及答案详解
- 线上线下土特产销售合作协议范本
- 2026云南黄金矿业集团股份有限公司第一次招聘工作人员13人笔试备考题库及答案详解
- 2026河北石家庄市委党校(石家庄行政学院、石家庄市社会主义学院、河北正定干部学院)公开选聘专职教师14名笔试参考题库及答案详解
- 畜牧养殖场动物疫病防控合作协议
- 2026陕西旅游烹饪职业学院招聘6人笔试备考试题及答案详解
- 2026中国主题公园行业市场调研及消费趋势与投资机会研究报告
- 2026届陕西西安高考物理模拟卷(原卷版)
- 长期照护师职业技能鉴定考试复习题库(附答案)
- 2026年大学财务处招聘考试专业知识模拟题
- 2025年荣耀AI隐私安全白皮书
- 2026届山东省聊城市临清市重点达标名校中考押题生物预测卷含解析
- 太阳能光热发电课件
- 2026中复神鹰碳纤维西宁有限公司招聘40人考试参考试题及答案解析
- 关于取消原定采购订单的通知函8篇
- 围手术期营养支持指南
- 格力中央空调培训课件
评论
0/150
提交评论