文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

基于PyQt5实现状态栏(statusBar)显示和隐藏功能

2024-04-02 19:55

关注

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

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 sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction, qApp, QMenu
from 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_())

到此这篇关于基于PyQt5实现状态栏(statusBar)显示和隐藏功能的文章就介绍到这了,更多相关PyQt5状态栏显示 隐藏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯