返回信息流代码如下:
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()
这是一条镜像帖。来源:北邮人论坛 / python / #7905同步于 2015/7/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
求助:wxpython菜单绑定事件无响应
dsfour
2015/7/25镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复