BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #7905同步于 2015/7/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

求助:wxpython菜单绑定事件无响应

dsfour
2015/7/25镜像同步5 回复
代码如下: import wx class Editor(wx.App): def OnInit(self): self.file='' self.height=400 self.width=600 self.frame=wx.Frame(parent=None,title=r'LJS\'Editor',size=(self.width,self.height)) self.panel=wx.Panel(self.frame,-1) self.menubar=wx.MenuBar() self.file1=wx.Menu() self.open=self.file1.Append(-1,'open') self.save=self.file1.Append(-1,'Save') self.saveas=self.file1.Append(-1,'SaveAs') self.close=self.file1.Append(-1,'Close') self.menubar.Append(self.file1,'&File') self.edit=wx.Menu() self.copy=self.edit.Append(-1,'Copy') self.paste=self.edit.Append(-1,'Paste') self.selectall=self.edit.Append(-1,'SelectAll') self.undo=self.edit.Append(-1,'Undo') self.redo=self.edit.Append(-1,'Redo') self.menubar.Append(self.edit,'&Edit') self.view=wx.Menu() self.color=self.view.Append(-1,'Color') self.transparent=self.view.Append(-1,'Transparent') self.menubar.Append(self.view,'&View') self.help=wx.Menu() self.about=self.help.Append(-1,'About') self.menubar.Append(self.help,'&Help') self.frame.SetMenuBar(self.menubar) self.text=wx.TextCtrl(self.panel,-1, '',pos=(2,2),size=(self.width-10,self.height-50),style=wx.TE_MULTILINE|wx.HSCROLL) self.Bind=(wx.EVT_MENU,self.OnOpen,self.open) self.Bind=(wx.EVT_MENU,self.OnSave,self.save) self.Bind=(wx.EVT_MENU,self.OnSaveAs,self.saveas) self.Bind=(wx.EVT_MENU,self.OnClose,self.close) self.Bind=(wx.EVT_MENU,self.OnCopy,self.copy) self.Bind=(wx.EVT_MENU,self.OnPaste,self.paste) self.Bind=(wx.EVT_MENU,self.OnSelectAll,self.selectall) self.Bind=(wx.EVT_MENU,self.OnUndo,self.undo) self.Bind=(wx.EVT_MENU,self.OnRedo,self.redo) self.Bind=(wx.EVT_MENU,self.OnTransparent,self.transparent) self.Bind=(wx.EVT_MENU,self.OnColor,self.color) self.Bind=(wx.EVT_MENU,self.OnAbout,self.about) self.Bind=(wx.EVT_RIGHT_DOWN,self.OnClick) self.Bind=(wx.EVT_SIZE,self.OnReSize) self.frame.Show() return True def OnOpen(self,event): dialog=wx.FileDialog(None,'Open',style=wx.FD_OPEN) if dialog.ShowModal()==wx.OK: self.path=dialog.GetPath() self.file=open(self.path) self.text.Clear() self.text.WriteText(self.file.read()) self.file.Close() dialog.Destroy() def OnSave(self,event): if self.file=='': dialog=wx.FileDialog(None,'SaveAs',style=wx.FD_SAVE) if dialog.ShowModal()==wx.ID_OK: self.file=dialog.GetPath() self.text.SaveFile(self.file) dialog.Destroy() else: self.text.SaveFile(self.file) def OnClose(self,event): self.frame.Destroy() def OnSaveAs(self,event): dialog=wx.FileDialog(None,'SaveAs',style=wx.FD_SAVE) if dialog.ShowModal()==wx.ID_OK: self.file=dialog.GetPath() self.text.SaveFile(self.file) dialog.Destroy() def OnCopy(self,event): self.text.Copy() def OnPaste(self,event): self.text.Paste() def OnCut(self,event): self.text.Cut() def OnSelectAll(self,event): self.text.SelectAll() def OnUndo(self,event): self.text.Undo() def OnRedo(self,event): self.text.Redo() def OnColor(self,event): if self.view.Check(1051): self.text.SetBackgroundColour('black') self.text.SetForegroundColour('white') self.text.Refresh() else: self.text.SetBackgroundColour('white') self.text.SetForegroundColour('black') self.text.Refresh() def OnTransparent(self,event): r=wx.GetNumberFromUser('In','','Transparent',80,min=30) if r!=-1: self.frame.SetTransparent(r*255/100) self.frame.Refresh() def OnClick(self,event): pos1=(event.GetX(),event.GetY()) self.panel.PopupMenu(self.edit,pos=pos1) def OnReSize(self,event): self.newsize=self.frame.GetSize() self.width=self.newsize.GetWidth()-10 self.height=self.newsize.GetHeight()-50 self.text.SetSize(self.width,self.height) self.text.Refresh() def OnAbout(self,event): wx.MessageBox('LJS','Editor',style=wx.OK) MyEdi=Editor() MyEdi.MainLoop()
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
dsfour机器人#1 · 2015/7/25
新人菜鸟求助
nuanyangyang机器人#2 · 2015/7/25
试试qt和pyside? 来自「北邮人论坛手机版」
dsfour机器人#3 · 2015/7/25
【 在 nuanyangyang 的大作中提到: 】 : 试试qt和pyside? : 来自「北邮人论坛手机版」 暖神我没学过qt = =!
kuangfengwin机器人#4 · 2015/7/25
跟着 wiki 上的教程来应该不会错吧
asif12机器人#5 · 2015/7/25
self.Bind=(wx.EVT_SIZE,self.OnReSize)把等号去了? 来自「北邮人论坛手机版」