Home Web Front-end JS Tutorial Notification bar script startup tool written in Python

Notification bar script startup tool written in Python

Mar 12, 2018 pm 03:35 PM
python start up Script

这次给大家带来Python编写的通知栏脚本启动工具,Python编写通知栏脚本启动工具的注意事项有哪些,下面就是实战案例,一起来看一下。

首先

安装PyQt5

pip3 install PyQt5

然后创建目录

新建一个文件夹用于存放项目
文件夹示例结构如下:

/main #主文件夹 名字自定义├─main.pyw #主启动程序├─conf.py #用于自定义菜单配置├─/icons  #用于存放图标 文件夹└─/scripts #用于存放脚本 文件夹 可以省略

.pyw后缀的文件是指窗体应用程序默认是Python环境变量目录下的pythonw.exe文件如果打开方式是控制台程序,需要手动指定打开方式

关于图标可以前往http://www.iconfont.cn/下载

2.代码

2.1.我们来创建个通知栏显示:

################ main.pyw ################from PyQt5.QtWidgets import QDialog, QSystemTrayIcon, QMenu ,QAction,QApplication
from PyQt5.QtGui import QIcon
import sysclass main(QDialog):
    def init(self):        super().init()        self.loadMenu()        self.initUI()    def loadMenu(self):
        menuItems = []  # 菜单列表
        menuItems.append({"text": "启动", "icon": "./icons/set.png", "event": self.show, "hot": "D"})
        menuItems.append({"text": "退出", "icon": "./icons/close.png", "event": self.close, "hot": "Q"})        self.trayIconMenu = QMenu(self)# 创建菜单
        #遍历绑定 显示的文字、图标、热键和点击事件
        #热键可能是无效的 我这里只是为了显示效果而已
        for i in menuItems: 
            tmp = QAction(QIcon(i["icon"]), i["text"],self, triggered=i["event"])
            tmp.setShortcut(self.tr(i["hot"]))            self.trayIconMenu.addAction(tmp) 
    def initUI(self):        self.trayIcon = QSystemTrayIcon(self)  # <===创建通知栏托盘图标
        self.trayIcon.setIcon(QIcon("./icons/menu2.png"))#<===设置托盘图标
        self.trayIcon.setContextMenu(self.trayIconMenu)#<===创建右键连接菜单
        self.trayIcon.show()#<====显示托盘
        self.setWindowIcon(QIcon("./icons/menu2.png"))  #<===设置窗体图标
        self.setGeometry(300, 300, 180, 300)  # <===设置窗体打开位置与宽高
        self.setWindowTitle(&#39;窗体标题&#39;)        # self.show()#<====显示窗体
        # self.hide()#<====隐藏窗体
        # 默认不显示窗体        
    # 重写窗体关闭事件,让其点击关闭时隐藏
    def closeEvent(self, event):        if self.trayIcon.isVisible():            self.trayIcon.hide()if name == &#39;main&#39;:
    app = QApplication(sys.argv)
    ex = main()
    sys.exit(app.exec_())
Copy after login

效果:

2.2.如果通知栏显示成功后接下来的配置就十分简单了,只是绑定显示与事件就行了

################ conf.pyw ################import osimport timedef PrScrn():#调用 dll示例
    time.sleep(0.5)
    os.popen(&#39;rundll32 .\\script\\截图\\PrScrn.dll PrScrn&#39;)def Open360Wifi():#打开应用程序示例
    os.popen(&#39;"C:\\Program Files (x86)\\360\\360AP\\360AP.exe" /menufree&#39;)def OpenRegedit():#调用 命令示例
    os.popen(&#39;regedit&#39;)def Ifconfig():
    os.system(&#39;&#39;&#39;ipconfig & pause&#39;&#39;&#39;)
menuItems=[    #.....示例....
    {"text":"截图","icon":"./icons/cut.png","event":PrScrn,"hot":"Alt+P"},
    {"text":"360Wifi","icon":"./icons/wifi.png","event":Open360Wifi,"hot":"Alt+W"},
    {"text":"注册表","icon":"./icons/regedit.png","event":OpenRegedit,"hot":"Alt+R"},
    {"text":"ifconfig","icon":"./icons/ip.png","event":Ifconfig,"hot":"Alt+R"}
]
Copy after login

2.3.读取配置并显示
读取十分简单:

from PyQt5.QtWidgets import QDialog, QSystemTrayIcon, QMenu ,QAction,QApplicationfrom PyQt5.QtGui import QIconimport sysimport conf#<====导入confclass main(QDialog):
    def init(self):
        super().init()
        self.loadMenu()
        self.initUI()    def loadMenu(self):
        menuItems =conf.menuItems #<=====菜单列表
        #....略
    #....略if name == &#39;main&#39;:
    app = QApplication(sys.argv)
    ex = main()
    sys.exit(app.exec_())
Copy after login

2.4.将窗体利用起来
我这里就举个简单的例子:

from PyQt5.QtWidgets import QDialog, QAction, QApplication, QListWidget, QVBoxLayout, QSystemTrayIcon, QMenu, QListWidgetItem
from PyQt5.QtGui import QIcon
import sys
import confclass main(QDialog):
    def init(self):        super().init()        self.loadMenu()        self.initUI()    #省略.....
    def loadList(self):
        lv = QListWidget()        for i in range(len(conf.menuItems)):
            itm = conf.menuItems[i]            if not &#39;icon&#39; in itm.keys():
                itm["icon"] = None            if not &#39;event&#39; in itm.keys():
                itm["event"] = self.show            if not &#39;hot&#39; in itm.keys():
                itm["hot"] = &#39;None&#39; 
            qlv = QListWidgetItem(QIcon(itm["icon"]), self.tr(itm["text"]+"  ("+itm["hot"]+")"))
            qlv.event = itm["event"] 
            # qlv.clicked.connect(self.close)
            lv.insertItem(i + 1, qlv)
        lv.itemDoubleClicked.connect(self.dbclickItem)        self.layout.addWidget(lv)    def dbclickItem(self, item):
        item.event()   #省略.....
 #省略.....
Copy after login

Notification bar script startup tool written in Python

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

如何使用canvas来制作好用的涂鸦画板

如何使用s-xlsx之合并单元格

The above is the detailed content of Notification bar script startup tool written in Python. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

Choosing Between PHP and Python: A Guide Choosing Between PHP and Python: A Guide Apr 18, 2025 am 12:24 AM

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

Python vs. JavaScript: The Learning Curve and Ease of Use Python vs. JavaScript: The Learning Curve and Ease of Use Apr 16, 2025 am 12:12 AM

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

PHP and Python: A Deep Dive into Their History PHP and Python: A Deep Dive into Their History Apr 18, 2025 am 12:25 AM

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

Can vs code run in Windows 8 Can vs code run in Windows 8 Apr 15, 2025 pm 07:24 PM

VS Code can run on Windows 8, but the experience may not be great. First make sure the system has been updated to the latest patch, then download the VS Code installation package that matches the system architecture and install it as prompted. After installation, be aware that some extensions may be incompatible with Windows 8 and need to look for alternative extensions or use newer Windows systems in a virtual machine. Install the necessary extensions to check whether they work properly. Although VS Code is feasible on Windows 8, it is recommended to upgrade to a newer Windows system for a better development experience and security.

Can visual studio code be used in python Can visual studio code be used in python Apr 15, 2025 pm 08:18 PM

VS Code can be used to write Python and provides many features that make it an ideal tool for developing Python applications. It allows users to: install Python extensions to get functions such as code completion, syntax highlighting, and debugging. Use the debugger to track code step by step, find and fix errors. Integrate Git for version control. Use code formatting tools to maintain code consistency. Use the Linting tool to spot potential problems ahead of time.

How to run python with notepad How to run python with notepad Apr 16, 2025 pm 07:33 PM

Running Python code in Notepad requires the Python executable and NppExec plug-in to be installed. After installing Python and adding PATH to it, configure the command "python" and the parameter "{CURRENT_DIRECTORY}{FILE_NAME}" in the NppExec plug-in to run Python code in Notepad through the shortcut key "F6".

How to run programs in terminal vscode How to run programs in terminal vscode Apr 15, 2025 pm 06:42 PM

In VS Code, you can run the program in the terminal through the following steps: Prepare the code and open the integrated terminal to ensure that the code directory is consistent with the terminal working directory. Select the run command according to the programming language (such as Python's python your_file_name.py) to check whether it runs successfully and resolve errors. Use the debugger to improve debugging efficiency.

See all articles