2017-09-02 9 views
0

私はPythonを初めて使用し、wxPythonを使用して、システムトレイアイコンに最小化できるツールを構築し、左クリックすると元に戻すことができます。 は、私はオンラインで検索しながら、私は、Python 3のコードを次している私は、スニペットを次のようにキーをバインドできることを見出した。TaskBarIconクラスのwxPytonでEVT_TASKBAR_LEFT_DOWNをバインドする方法

self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick)

しかし、これはそのwx doesn't have this attributeというエラーの原因となっています。

タスクバーのアイコンをクリックしたときにメインウィンドウを復元するには、右クリックしてポップアップメニューを作成します。

import wx 
import wx.adv 


class SysTrayMenu(wx.adv.TaskBarIcon): 
    def __init__(self, frame, icon=None, menu=None): 
     wx.adv.TaskBarIcon.__init__(self) 
     self.frame = frame 
     self.menu = menu 
     self.icon = icon 
     app_icon = wx.Icon() 
     app_icon.CopyFromBitmap(wx.Bitmap(self.icon, wx.BITMAP_TYPE_PNG)) 
     self.SetIcon(app_icon) 

     self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick) 

    def OnTaskBarLeftClick(self, evt): 
     self.frame.Show() 
     self.frame.Recover() 

    def CreatePopupMenu(self): 
     new_menu = wx.Menu() 
     return self.menu 

答えて

0

TaskBarIconクラスはwx.advモジュールであるので、次にcorespondingイベントバインダーとイベントタイプIDはwx.advでもあります。

0

私は間違っていました。メニューをポップアップにするには、wx.EVT_MENUとバインドする必要がありました。

self.Bind(wx.EVT_MENU, self.click_me, id=self.m_cb.GetId()) 
0

以下のコードを代わりに使用してください。 Pls。そのイベントは、wx.adv.wxEVT_TASKBAR_BALLOON_CLICKではなく、wx.adv.EVT_TASKBAR_LEFT_DOWNである必要があります。以前はパイチャのプロンプトで私は誤解されていました。

self.Bind(wx.adv.EVT_TASKBAR_LEFT_DOWN、self.on_left_down)

+0

スタックオーバーフローようこそ!新しい質問がある場合は、[Ask Question](// stackoverflow.com/questions/ask)ボタンをクリックして質問してください。あなたが十分な評判を得ているなら、[あなたはupvote](// stackoverflow.com/privileges/vote-up)の質問をすることができます。あるいは、お気に入りに「スター」して、新しい回答があれば通知されます。 – LW001

関連する問題