PyhtonのwxPythonで作成されたランチャー、 タスクトレイからアプリを起動します。 あくまでもサンプルなので、自力でカスタマイズして下さいね。![]()
DownLoad アイコン、ソースファイルの圧縮ファイル Pyhtonの動く環境なら、すぐ起動できます マウスの右クリックで、メニューが表示されます。 Item1がメモ帳が起動して、Item2は電卓が起動します。 左クリックでは、フレームが表示されます。 ただし、クリックする度にフレームが表示されますので、制御が必要です。
import wx #wxPython のモジュール import wx.adv import subprocess #------------------------------------------------------------------------------- # タスクトレイのクラス (TaskBarIconを継承) #------------------------------------------------------------------------------- class SysTray(wx.adv.TaskBarIcon): def __init__(self): wx.adv.TaskBarIcon.__init__(self) # 継承本の初期化を呼び出す icon = wx.Icon( 'ttray.png', wx.BITMAP_TYPE_ANY ) self.SetIcon(icon, "タスクトレイのサンプル") # CreatePopupMenuを使う場合は、コメントにする # 右クリック時の関数登録 # //self.Bind( wx.adv.EVT_TASKBAR_RIGHT_UP, self.RightClick) # 左クリック時の関数登録 self.Bind( wx.adv.EVT_TASKBAR_LEFT_UP, self.LeftClick) # 注意点1 return では、メニュー(self.menu)を渡す # return Noneは、何もしない # ここで、メニューを毎回作成しなければいけない def CreatePopupMenu(self): print("CreatePopupMenu") menu = wx.Menu()# タスクトレイメニューの作成 menu.Append(1, "item1") menu.Append(2, "item2") menu.Append(3, "Exit") self.Bind(wx.EVT_MENU, self.click_item ) return menu def LeftClick( self, even ): print("LeftClick") # クリックされる度にフレームが作成されるので # されないようにしなければならな(クローズイベントを利用) wx.Frame( None ).Show() # 終了処理ですタスクトレイから削除されます def exitTray(self, event ): self.Destroy() wx.Exit() # メニュー項目がクリックされた def click_item(self, event): event_id = event.GetId() # IDを取得する if (event_id == 1): print("item1が、押されたよ") subprocess.Popen(r'notepad.exe') elif (event_id == 2): print("item2が、押されたよ") subprocess.Popen(r'calc.exe') elif (event_id == 3): print("item3が、押されたよ") self.exitTray( event ) #------------------------------------------------------------------------------- # メイン #------------------------------------------------------------------------------- app = wx.App() SysTray() # タスクトレイクラスの呼出 app.MainLoop()