wxPython을 사용하여 wxPython 데모 코드를 기반으로 작업 표시 줄 아이콘을 만들었습니다. 작업 표시 줄 아이콘을 오른쪽 클릭하면 아이콘 메뉴가 열립니다. 그러나 나는 그것이 왼쪽 클릭에서도 특정 일을하기를 원할 것이다.wxPython 작업 표시 줄 아이콘 이벤트가 예상대로 작동하지 않습니다.
는 다음 코드에서 3 바인딩 라인에서와 같이 EVT_TASKBAR_CLICK
이벤트를 수신하여이를 구현 시도했다 :
class TrayIcon(wx.TaskBarIcon):
...
def __init__(self, frame):
...
self.Bind(wx.EVT_MENU, self.OnLoanUpdate, id=self.TBMENU_UPDATE)
self.Bind(wx.EVT_MENU, self.OnTaskBarClose, id=self.TBMENU_CLOSE)
self.Bind(wx.EVT_TASKBAR_CLICK, self.DoSomething())
...
def DoSomething(self):
print "do it"
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200, 100))
...
self.tbicon = TrayIcon(self)
self.Show(True)
...
그러나, DoSomething()
방법은 내 작업 표시 줄 아이콘의 초기화시 실행됩니다. 그리고 예상대로 왼쪽 (또는 오른쪽) 클릭시 해고 당하지 않습니다. 사실, 다른 이벤트 (예 : EVT_CLOSE
또는 EVT_MENU_HIGHLIGHT
)를 사용하더라도 문제는 완전히 동일합니다.
Windows 7에서 테스트 중입니다. 무엇이 잘못 되었나요?
편집 : 나는 this code을 시도하고 MainWindow를 클래스에서 이벤트를 구현, 더블 클릭은 일을하지만 내 경우에는하지 않을 때 나는 아직도 의아해하고있다.
네, 다른 두 개의 Bind() 메소드에서 parens이 없다는 사실을 간과했습니다! (완전히 수정하려면 DoSomething 메서드에도 추가 evt 매개 변수를 추가해야했습니다.) – Rabarberski