因?yàn)閹团笥验_發(fā)了一個(gè)腳本茎毁,丫說(shuō)命令行不好用克懊,非要一個(gè)圖形界面,我就屁顛屁顛的去看wxPython了七蜘,感覺(jué)挺麻煩的谭溉,于是想著還不如寫個(gè)web應(yīng)用,啟動(dòng)腳本后打開瀏覽器崔梗,進(jìn)入web頁(yè)面夜只,還不是美滋滋?但是想著要是web被關(guān)掉了蒜魄,那想再打開還得用戶手動(dòng)輸入ip地址扔亥,挺麻煩的,應(yīng)該有個(gè)圖標(biāo)可以方便進(jìn)入和退出谈为,像這樣
像這樣
經(jīng)過(guò)一陣Google旅挤,發(fā)現(xiàn)大多數(shù)教程和Wiki都是過(guò)時(shí)的,參考著這些過(guò)時(shí)的文章以及wxPython官網(wǎng)的API手冊(cè)伞鲫,終于寫了出來(lái)能再當(dāng)前最新的環(huán)境中運(yùn)行的代碼粘茄。
閱讀本文章也許需要一點(diǎn)wxPython的基礎(chǔ)知識(shí)
python版本:3.6.2
wxPython版本:4.0
ok,上代碼:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = 'jethro'
import wx
import wx.adv
class MyTaskBarIcon(wx.adv.TaskBarIcon):
ICON = "logo.ico" # 圖標(biāo)地址
ID_ABOUT = wx.NewId() # 菜單選項(xiàng)“關(guān)于”的ID
ID_EXIT = wx.NewId() # 菜單選項(xiàng)“退出”的ID
ID_SHOW_WEB = wx.NewId() # 菜單選項(xiàng)“顯示頁(yè)面”的ID
TITLE = "二維碼發(fā)送程序" #鼠標(biāo)移動(dòng)到圖標(biāo)上顯示的文字
def __init__(self):
wx.adv.TaskBarIcon.__init__(self)
self.SetIcon(wx.Icon(self.ICON), self.TITLE) # 設(shè)置圖標(biāo)和標(biāo)題
self.Bind(wx.EVT_MENU, self.onAbout, id=self.ID_ABOUT) # 綁定“關(guān)于”選項(xiàng)的點(diǎn)擊事件
self.Bind(wx.EVT_MENU, self.onExit, id=self.ID_EXIT) # 綁定“退出”選項(xiàng)的點(diǎn)擊事件
self.Bind(wx.EVT_MENU, self.onShowWeb, id=self.ID_SHOW_WEB) # 綁定“顯示頁(yè)面”選項(xiàng)的點(diǎn)擊事件
# “關(guān)于”選項(xiàng)的事件處理器
def onAbout(self, event):
wx.MessageBox('程序作者:JethroCup\n最后更新日期:2017-8-13', "關(guān)于")
# “退出”選項(xiàng)的事件處理器
def onExit(self, event):
wx.Exit()
# “顯示頁(yè)面”選項(xiàng)的事件處理器
def onShowWeb(self, event):
pass
# 創(chuàng)建菜單選項(xiàng)
def CreatePopupMenu(self):
menu = wx.Menu()
for mentAttr in self.getMenuAttrs():
menu.Append(mentAttr[1], mentAttr[0])
return menu
# 獲取菜單的屬性元組
def getMenuAttrs(self):
return [('進(jìn)入程序', self.ID_SHOW_WEB),
('關(guān)于', self.ID_ABOUT),
('退出', self.ID_EXIT)]
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self)
MyTaskBarIcon()#顯示系統(tǒng)托盤圖標(biāo)
class MyApp(wx.App):
def OnInit(self):
MyFrame()
return True
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
運(yùn)行后沒(méi)有任何窗口,僅再系統(tǒng)托盤上有個(gè)圖標(biāo)柒瓣,運(yùn)行結(jié)果圖:
點(diǎn)擊退出后就退出了
我搜索到的是wx.TaskBarIcon儒搭,復(fù)制過(guò)來(lái)運(yùn)行不了,去官網(wǎng)看了api才知道丫變成了wx.adv.TaskBarIcon芙贫。搂鲫。。磺平。