python利用wxPython在系統(tǒng)托盤顯示圖標(biāo)

因?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芙贫。搂鲫。。磺平。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魂仍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拣挪,更是在濱河造成了極大的恐慌擦酌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菠劝,死亡現(xiàn)場(chǎng)離奇詭異赊舶,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)赶诊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門锯岖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人甫何,你說(shuō)我怎么就攤上這事∮錾。” “怎么了辙喂?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鸠珠。 經(jīng)常有香客問(wèn)我巍耗,道長(zhǎng),這世上最難降的妖魔是什么渐排? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任炬太,我火速辦了婚禮,結(jié)果婚禮上驯耻,老公的妹妹穿的比我還像新娘亲族。我一直安慰自己,他們只是感情好可缚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布霎迫。 她就那樣靜靜地躺著,像睡著了一般帘靡。 火紅的嫁衣襯著肌膚如雪知给。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音涩赢,去河邊找鬼戈次。 笑死,一個(gè)胖子當(dāng)著我的面吹牛筒扒,可吹牛的內(nèi)容都是我干的怯邪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼霎肯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼擎颖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起观游,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤搂捧,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后懂缕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體允跑,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年搪柑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了聋丝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡工碾,死狀恐怖弱睦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渊额,我是刑警寧澤况木,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站旬迹,受9級(jí)特大地震影響火惊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奔垦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一屹耐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椿猎,春花似錦惶岭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至阔逼,卻和暖如春兆衅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工羡亩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摩疑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓畏铆,卻偏偏與公主長(zhǎng)得像雷袋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辞居,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理楷怒,服務(wù)發(fā)現(xiàn),斷路器瓦灶,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評(píng)論 25 707
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,448評(píng)論 6 428
  • 難過(guò)贼陶,詞典里有三個(gè)解釋刃泡。 1、指生活困難碉怔,日子不容易過(guò)烘贴。 2、指身體不舒服撮胧。 3桨踪、心情不痛快;傷心芹啥;心里難過(guò)馒闷。 無(wú)...
    魚七er閱讀 510評(píng)論 0 0
  • MacTalk - 程序員很窮 程序員很窮,他們要么是顯得很窮叁征,要么是真的很窮。 前幾天一位做市場(chǎng)的同事跑過(guò)來(lái)問(wèn)逛薇,...
    鄭宏鑫閱讀 5,507評(píng)論 0 4