zoukankan      html  css  js  c++  java
  • pyqt最小化托盘

    方法来源,膜拜大佬
    Python:PyQt 系统托盘_lianback的博客-CSDN博客
    https://blog.csdn.net/lianback/article/details/79614771

    第一步,添加不关闭代码

    添加一行代码 app.setQuitOnLastWindowClosed(False) # 最小化托盘用 

     第二步,添加相关包

    from PyQt5.QtWidgets import QSystemTrayIcon, QAction
    from PyQt5.QtWidgets import QMenu
    from PyQt5.QtGui import QIcon

    第三步,添加最小化托盘的代码

    1.代码位置

     2.代码内容

        # -------------------- 托盘开始 ----------
        # 在系统托盘处显示图标
        w=main_form
        tp = QSystemTrayIcon(w)
        tp.setIcon(QIcon('D:/图片/刘亦菲/liuyuifeipic.jpg'))
        # 设置系统托盘图标的菜单
        a1 = QAction('&显示(Show)', triggered=w.show)
        def quitApp():
            w.show()  # w.hide() #隐藏
            re = QMessageBox.question(w, "提示", "退出系统", QMessageBox.Yes |
                                      QMessageBox.No, QMessageBox.No)
            if re == QMessageBox.Yes:
                # 关闭窗体程序
                QCoreApplication.instance().quit()
                # 在应用程序全部关闭后,TrayIcon其实还不会自动消失,
                # 直到你的鼠标移动到上面去后,才会消失,
                # 这是个问题,(如同你terminate一些带TrayIcon的应用程序时出现的状况),
                # 这种问题的解决我是通过在程序退出前将其setVisible(False)来完成的。
                tp.setVisible(False)
        a2 = QAction('&退出(Exit)', triggered=quitApp)  # 直接退出可以用qApp.quit
        tpMenu = QMenu()
        tpMenu.addAction(a1)
        tpMenu.addAction(a2)
        tp.setContextMenu(tpMenu)
        # 不调用show不会显示系统托盘
        tp.show()
        # 信息提示
        # 参数1:标题
        # 参数2:内容
        # 参数3:图标(0没有图标 1信息图标 2警告图标 3错误图标),0还是有一个小图标
        tp.showMessage('tp', 'tpContent', icon=0)
        def message():
            print("弹出的信息被点击了")
        tp.messageClicked.connect(message)
        def act(reason):
            # 鼠标点击icon传递的信号会带有一个整形的值,1是表示单击右键,2是双击,3是单击左键,4是用鼠标中键点击
            if reason == 2 or reason == 3:
                w.show()
            # print("系统托盘的图标被点击了")
        tp.activated.connect(act)
        # -------------------- 托盘结束 ----------

    转载仅为学习,不会商用。
    欢迎转载原创,附文链接。
  • 相关阅读:
    【Java Web】使用URLRewrite实现网站伪静态
    Jsp的include指令静态导入和动态导入的区别
    JSP中使用cookie存储中文
    【转】android加载大量图片内存溢出的三种解决办法
    Android调整TimePicker和DatePicker大小
    使用WebClient实现通讯(Silverlight学习笔记)
    Silverlight 用户控件与自定义控件详解
    利用WebClient和WebRequest类获得网页源代码
    Silverlight中的对象序列化/反序列化
    Flex与FLASH区别及Flex动画效果学习
  • 原文地址:https://www.cnblogs.com/xdd1997/p/14120676.html
Copyright © 2011-2022 走看看