アプリ(taskTrayサンプル)

Top
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()        

©2022 Kenji Kobayashi YouTube