首先,讲述要解决的两个问题以及解决问题的代码:

1、将鼠标搁置于菜单栏上状态栏永恒隐没的问题(这个问题须要仔细观察能力留神到)

    # 此笼罩父类函数: 笼罩办法; 为了克服 将鼠标搁置于菜单栏上 状态栏就隐没的问题;    def event(self, QEvent):        if QEvent.type() == QEvent.StatusTip:            if QEvent.tip() == "":                QEvent = QStatusTipEvent("ready!")  # 此处为要始终显示的内容        return super().event(QEvent)

2、管制状态栏显示和暗藏的问题

   def toggleMenu(self, state):  # 自定义事件函数        print(state)        # if state:        #     self.statusBar().showMessage("ready!")        # else:        #     self.statusBar().showMessage("")        # if state:  # 管制状态栏是否显示,        #     self.statusbar().show()  # 此处是谬误示例        # else:        #     self.statusbar().hide()         if state:  # 应该应用statusBar() 而不是 statusbar            self.statusBar().show()        else:            self.statusBar().hide()

最近学习pyqt5教程,也是他人翻译的,总的也是谬误多多,应该间接看原版的,充沛表明英语很重要啊……

贴上全副代码:

import sysfrom PyQt5.QtWidgets import QMainWindow, QApplication, QAction, qApp, QMenufrom PyQt5.QtGui import QIcon, QStatusTipEvent class main_window(QMainWindow):    def __init__(self):        super().__init__()        self.initUI()     def initUI(self):        # 能够设置 动作的图标, 文字显示; 弱小        exitAct = QAction(QIcon("/Users/zuozhe/PycharmProjects/Soft-Video/images/m4.png"), "&退出", self)        exitAct.setShortcut("Ctrl+Q")  # 设置快捷键        exitAct.setToolTip("Exit Application")  # 提醒        exitAct.triggered.connect(qApp.exit)  # 绑定退出事件         status = self.statusBar()  # 创立状态栏        status.showMessage("ready!")  # 显示音讯         # 菜单栏        # 文件菜单栏        menubar = self.menuBar()        menubar.setNativeMenuBar(False)  # MAC OS 下须要设置此句话        fileMenu = menubar.addMenu("&File")  # 主菜单File         impMenu = QMenu("Import", self)  # 创立菜单项        impAct = QAction("Import Email", self)  # Import菜单下有子菜单 Import Email        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("View statusbar")        viewstatAct.setChecked(True)        viewstatAct.triggered.connect(self.toggleMenu)  # 触发链接事件; toggleMenu是自定义函数        viewMenu.addAction(viewstatAct)         # 设置窗口的 地位和大小        self.setGeometry(300, 300, 500, 600)        self.setWindowTitle("主窗口的菜单栏和工具栏")        self.show()     # 此笼罩父类函数: 笼罩办法; 为了克服 将鼠标搁置于菜单栏上 状态栏就隐没的问题;    def event(self, QEvent):        if QEvent.type() == QEvent.StatusTip:            if QEvent.tip() == "":                QEvent = QStatusTipEvent("ready!")  # 此处为要始终显示的内容        return super().event(QEvent)     def toggleMenu(self, state):  # 自定义事件函数        print(state)        # if state:        #     self.statusBar().showMessage("ready!")        # else:        #     self.statusBar().showMessage("")        # if state:  # 管制状态栏是否显示,        #     self.statusbar().show()        # else:        #     self.statusbar().hide()         if state:  # 应该应用statusBar() 而不是 statusbar            self.statusBar().show()        else:            self.statusBar().hide()  if __name__ == "__main__":    app = QApplication(sys.argv)    window = main_window()    sys.exit(app.exec_())