最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Python編寫的通知欄腳本啟動工具

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 20:01:15
文檔

Python編寫的通知欄腳本啟動工具

Python編寫的通知欄腳本啟動工具:這次給大家?guī)鞵ython編寫的通知欄腳本啟動工具,Python編寫通知欄腳本啟動工具的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。首先安裝PyQt5pip3 install PyQt5然后創(chuàng)建目錄新建一個文件夾用于存放項目文件夾示例結(jié)構(gòu)如下:/main #主文件夾 名
推薦度:
導(dǎo)讀Python編寫的通知欄腳本啟動工具:這次給大家?guī)鞵ython編寫的通知欄腳本啟動工具,Python編寫通知欄腳本啟動工具的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。首先安裝PyQt5pip3 install PyQt5然后創(chuàng)建目錄新建一個文件夾用于存放項目文件夾示例結(jié)構(gòu)如下:/main #主文件夾 名
這次給大家?guī)鞵ython編寫的通知欄腳本啟動工具,Python編寫通知欄腳本啟動工具的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。

首先

安裝PyQt5

pip3 install PyQt5

然后創(chuàng)建目錄

新建一個文件夾用于存放項目
文件夾示例結(jié)構(gòu)如下:

/main #主文件夾 名字自定義├─main.pyw #主啟動程序├─conf.py #用于自定義菜單配置├─/icons #用于存放圖標(biāo) 文件夾└─/scripts #用于存放腳本 文件夾 可以省略

.pyw后綴的文件是指窗體應(yīng)用程序默認是Python環(huán)境變量目錄下的pythonw.exe文件如果打開方式是控制臺程序,需要手動指定打開方式

關(guān)于圖標(biāo)可以前往http://www.iconfont.cn/下載

2.代碼

2.1.我們來創(chuàng)建個通知欄顯示:

################ 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)# 創(chuàng)建菜單
 #遍歷綁定 顯示的文字、圖標(biāo)、熱鍵和點擊事件
 #熱鍵可能是無效的 我這里只是為了顯示效果而已
 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) # <===創(chuàng)建通知欄托盤圖標(biāo)
 self.trayIcon.setIcon(QIcon("./icons/menu2.png"))#<===設(shè)置托盤圖標(biāo)
 self.trayIcon.setContextMenu(self.trayIconMenu)#<===創(chuàng)建右鍵連接菜單
 self.trayIcon.show()#<====顯示托盤
 self.setWindowIcon(QIcon("./icons/menu2.png")) #<===設(shè)置窗體圖標(biāo)
 self.setGeometry(300, 300, 180, 300) # <===設(shè)置窗體打開位置與寬高
 self.setWindowTitle('窗體標(biāo)題') # self.show()#<====顯示窗體
 # self.hide()#<====隱藏窗體
 # 默認不顯示窗體 
 # 重寫窗體關(guān)閉事件,讓其點擊關(guān)閉時隱藏
 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():#調(diào)用 dll示例
 time.sleep(0.5)
 os.popen('rundll32 .\\script\\截圖\\PrScrn.dll PrScrn')def Open360Wifi():#打開應(yīng)用程序示例
 os.popen('"C:\\Program Files (x86)\\360\\360AP\\360AP.exe" /menufree')def OpenRegedit():#調(diào)用 命令示例
 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#<====導(dǎo)入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() #省略.....
 #省略.....

1.gif

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注Gxl網(wǎng)其它相關(guān)文章!

相關(guān)閱讀:

如何使用canvas來制作好用的涂鴉畫板

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

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Python編寫的通知欄腳本啟動工具

Python編寫的通知欄腳本啟動工具:這次給大家?guī)鞵ython編寫的通知欄腳本啟動工具,Python編寫通知欄腳本啟動工具的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。首先安裝PyQt5pip3 install PyQt5然后創(chuàng)建目錄新建一個文件夾用于存放項目文件夾示例結(jié)構(gòu)如下:/main #主文件夾 名
推薦度:
標(biāo)簽: 打開 工具 實現(xiàn)
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top