這是我的腳本。由於某種原因,它不再工作。它以前做過。有人可以追查任何潛在的錯誤嗎?wxPython腳本掛起不明原因
#! /usr/bin/env python
import wx
import os
TRAY_TOOLTIP = 'jmtpfs mounter'
def create_menu_item(menu, label, func):
item = wx.MenuItem(menu, -1, label)
menu.Bind(wx.EVT_MENU, func, id=item.GetId())
menu.AppendItem(item)
return item
class TaskBarIcon(wx.TaskBarIcon):
def __init__(self):
super(TaskBarIcon, self).__init__()
self.off=wx.IconFromBitmap(wx.Bitmap("android_off.png"))
self.SetIcon(self.off)
self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.on_left_down)
def CreatePopupMenu(self):
menu = wx.Menu()
create_menu_item(menu, 'Mount', self.mount)
create_menu_item(menu, 'UnMount', self.unmount)
menu.AppendSeparator()
create_menu_item(menu, 'Exit', self.on_exit)
return menu
def on_left_down(self, event):
print 'Tray icon was left-clicked.'
def mount(self, event):
retvalue = os.system("jmtpfs ~/Nexus")
print retvalue
self.on=wx.IconFromBitmap(wx.Bitmap("android_on.png"))
self.SetIcon(self.on)
def unmount(self, event):
retvalue = os.system("fusermount -u ~/Nexus")
print retvalue
self.off=wx.IconFromBitmap(wx.Bitmap("android_off.png"))
self.SetIcon(self.off)
def on_exit(self, event):
wx.CallAfter(self.Destroy)
def main():
app = wx.PySimpleApp()
TaskBarIcon()
app.MainLoop()
if __name__ == '__main__':
main()
運行跟蹤給出了這樣的:
mounter.py(17):self.SetIcon(self.off) --- MODULENAME:_WINDOWS,funcname的:操作SetIcon _windows.py(2174) :返回窗口 .TaskBarIcon_SetIcon(* ARGS,** kwargs) mounter.py(18):self.Bind(wx.EVT_TASKBAR_LEFT_DOWN,self.on_left_down) --- MODULENAME:_Core,funcname的:綁定 _core.py (3916):assert isinstance(event,wx.PyEventBinder) _core.py(3917):斷言處理程序是無或可調用的(h (3919):如果源不是無: _core.py(3921):event.Bind(self())();如果源不是None, ,id,id2,handler)
--- modulename:_core,funcname:Bind _core.py(3994):for et in.evtType: _core.py(3995):target.Connect(id1,id2,等,功能) --- MODULENAME:_Core,funcname的:連接 _core.py(3875):返回核心 .EvtHandler_Connect(* ARGS,** kwargs) _core.py(3994):在自我等。 evtType: mounter.py(44):app.MainLoop() --- modulename:_core,funcname:MainLoop _core.py(8010):wx.PyApp.MainLoop(個體經營) --- MODULENAME:_Core,funcname的狀態:Mainloop _core.py(7306):返回核心 .PyApp_MainLoop(* ARGS,** kwargs)
它在哪裏退出?順便說一句,你應該閱讀PEP8當你有一段時間 – lolopop
我不知道。我不是一個Python程序員,我只是找到一個教程,並編輯我的目的。它曾經工作,但現在它突然沒有。我沒有更改任何已安裝的軟件包。我試着讓一個init腳本在啓動時啓動它,但那也行不通。 – tristan202
那麼,#1你至少應該試圖理解你的系統中的任何代碼。盲目拷貝粘貼是一個壞主意。 #2「它不再工作了」是一個非常模糊的問題,沒有錯誤信息,測試用例,甚至只是描述了你期望看到的內容以及你實際看到的內容,那麼很不可能我們可以幫助你。你有沒有嘗試過調試代碼? – acattle