基于PyQt5实现状态栏(statusBar)显示和隐藏功能_第1页
基于PyQt5实现状态栏(statusBar)显示和隐藏功能_第2页
基于PyQt5实现状态栏(statusBar)显示和隐藏功能_第3页
基于PyQt5实现状态栏(statusBar)显示和隐藏功能_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第基于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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论