Python編寫的通知列腳本啟動工具
这次给大家带来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('窗体标题') # self.show()#<====显示窗体 # self.hide()#<====隐藏窗体 # 默认不显示窗体 # 重写窗体关闭事件,让其点击关闭时隐藏 def closeEvent(self, event): if self.trayIcon.isVisible(): self.trayIcon.hide()if name == 'main': app = QApplication(sys.argv) ex = main() sys.exit(app.exec_())
效果:
2.2.如果通知栏显示成功后接下来的配置就十分简单了,只是绑定显示与事件就行了
################ conf.pyw ################import osimport timedef PrScrn():#调用 dll示例 time.sleep(0.5) os.popen('rundll32 .\\script\\截图\\PrScrn.dll PrScrn')def Open360Wifi():#打开应用程序示例 os.popen('"C:\\Program Files (x86)\\360\\360AP\\360AP.exe" /menufree')def OpenRegedit():#调用 命令示例 os.popen('regedit')def Ifconfig(): os.system('''ipconfig & pause''') 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"} ]
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 == 'main': app = QApplication(sys.argv) ex = main() sys.exit(app.exec_())
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 'icon' in itm.keys(): itm["icon"] = None if not 'event' in itm.keys(): itm["event"] = self.show if not 'hot' in itm.keys(): itm["hot"] = 'None' 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() #省略..... #省略.....
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
以上是Python編寫的通知列腳本啟動工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
