看了两天wxPython文档,作为练习简单做了一个简易的文本编辑器。有什么错误用法,希望一二,多谢!
呵呵,实现的功能是很简单的.(新建/打开/保存/另存/剪切/复制/粘贴/全选/删除^_^就这么多,算做simpleEditor beta1.0版吧。以后慢慢补充。)
python 代码:
# simpleEditor.py
-
-
-
- import wx
- from wx.lib.wordwrap import wordwrap
- import wx.richtext as rt
- import os, sys
-
- ID_NEW = wx.NewId()
- ID_OPEN = wx.NewId()
- ID_SAVE = wx.NewId()
- ID_SAVEAS = wx.NewId()
- ID_EXIT = wx.NewId()
- ID_ABOUT = wx.NewId()
- ID_CUT = wx.NewId()
- ID_COPY = wx.NewId()
- ID_PASTE = wx.NewId()
- ID_SELECT = wx.NewId()
- ID_CLEAR = wx.NewId()
-
- wildcard = "Python source (*.py)|*.py|"
-
- class SimpleEditor(wx.Frame):
-
- cur_file = ''
-
- def __init__(self, parent, id, title):
- wx.Frame.__init__(self, parent, id, title, size=(1024, 768))
-
-
- edit_area = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE)
- self.text = edit_area
- wx.CallAfter(self.text.SetFocus)
-
-
- self.CreateStatusBar()
- self.SetStatusText('Here display operate status.')
-
- menubar = wx.MenuBar(wx.MB_DOCKABLE)
-
- file = wx.Menu()
- edit = wx.Menu()
- help = wx.Menu()
-
- file.Append(ID_NEW, '&New\tCtrl+N', 'Create a new File')
- file.Append(ID_OPEN, '&Open\tCtrl+O', 'Open a File')
- file.Append(ID_SAVE, '&Save\tCtrl+S', 'Save a File')
- file.Append(ID_SAVEAS, '&Save As\tShift+Ctrl+S', 'Save as a File')
- file.AppendSeparator()
- file.Append(ID_EXIT, 'E&xit\tCtrl+W', 'Exit Current window')
-
- edit.Append(ID_CUT, '&Cut\tCtrl+X', 'Cut select text')
- edit.Append(ID_COPY, '&Copy\tCtrl+C', 'Copy select text')
- edit.Append(ID_PASTE, '&Paste\tCtrl+V', 'Paste clipboard text')
- edit.AppendSeparator()
- edit.Append(ID_SELECT, '&Select All\tCtrl+A', 'Select all')
- edit.Append(ID_CLEAR, '&Clear\tCtrl+D', 'delete select text')
-
- help.Append(ID_ABOUT, '&About Simple Editor', 'Simple Editor Message')
- menubar.Append(file, '&File')
- menubar.Append(edit, '&Edit')
- menubar.Append(help, '&Help')
- self.Bind(wx.EVT_MENU, self.OnOpen, id=ID_OPEN)
- self.Bind(wx.EVT_MENU, self.OnSave, id=ID_SAVE)
- self.Bind(wx.EVT_MENU, self.OnSaveAs, id=ID_SAVEAS)
- self.Bind(wx.EVT_MENU, self.OnExit, id=ID_EXIT)
- self.Bind(wx.EVT_MENU, self.OnAbout, id=ID_ABOUT)
- self.Bind(wx.EVT_MENU, self.OnCut, id=ID_CUT)
- self.Bind(wx.EVT_MENU, self.OnCopy, id=ID_COPY)
- self.Bind(wx.EVT_MENU, self.OnSelectAll, id=ID_SELECT)
- self.Bind(wx.EVT_MENU, self.OnClear, id=ID_CLEAR)
- self.Bind(wx.EVT_MENU, self.OnPaste, id=ID_PASTE)
-
-
- self.SetMenuBar(menubar)
-
- toolbar = self.CreateToolBar(wx.TB_HORIZONTAL | wx.NO_BORDER
- | wx.TB_FLAT | wx.TB_TEXT)
- toolbar.AddLabelTool(ID_NEW, '', wx.Bitmap('icons/new.gif'))
- toolbar.AddLabelTool(ID_OPEN, '', wx.Bitmap('icons/open.gif'))
- toolbar.AddLabelTool(ID_SAVE, '', wx.Bitmap('icons/save.gif'))
-
-
- def OnOpen(self, event):
- dlg = wx.FileDialog(
- self, message="Choose a file", defaultDir=os.getcwd(),
- defaultFile="", wildcard="All files (*.*)|*.*",
- style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR
- )
- if dlg.ShowModal() == wx.ID_OK:
-
-
- path = dlg.GetPath()
- if path:
- self.cur_file = path
-
- self.text.LoadFile(path, rt.RICHTEXT_TYPE_TEXT)
- dlg.Destroy()
-
- def OnSave(self, event):
- cur_content = self.text.GetValue()
- if not self.cur_file:
-
- dlg = wx.FileDialog(
- self, message="Save file as ...", defaultDir=os.getcwd(),
- defaultFile="", wildcard="*.*", style=wx.SAVE
- )
- if dlg.ShowModal() == wx.ID_OK:
- self.cur_file = dlg.GetPath()
- else: pass
- if self.cur_file:
- fp = open(self.cur_file, 'w')
- fp.write(cur_content)
- fp.close()
-
- def OnSaveAs(self, event):
- dlg = wx.FileDialog(
- self, "Choose a filename", wildcard="All files (*.*)|*.*",
- style=wx.SAVE)
- if dlg.ShowModal() == wx.ID_OK:
- path = dlg.GetPath()
- if path:
-
- self.cur_file = path
- fp = open(path, 'w')
- fp.write(self.text.GetValue())
- fp.close()
- dlg.Destroy()
-
- def OnExit(self, event):
- self.Close(True)
-
- def OnCut(self, event):
-
- self.text.Cut()
-
- def OnCopy(self, event):
-
- self.text.Copy()
-
- def OnPaste(self, event):
-
- self.text.Paste()
-
- def OnSelectAll(self, event):
-
- self.text.SelectAll()
-
- def OnClear(self, event):
-
-
- start,end = self.text.GetSelection()
- self.text.Remove(start, end)
-
-
- def OnAbout(self, event):
-
- info = wx.AboutDialogInfo()
- info.Name = "Simple Editor"
- info.Version = "beta 1.0"
- info.Copyright = "(C) 2008 Programmers and Coders Everywhere"
-
- info.Description = wordwrap(
- "A \"hello world\" program is a software program that prints out "
- "\"Hello world!\" on a display device. It is used in many introductory "
- "tutorials for teaching a programming language."
-
- "\n\nSuch a program is typically one of the simplest programs possible "
- "in a computer language. A \"hello world\" program can be a useful "
- "sanity test to make sure that a language's compiler, development "
- "environment, and run-time environment are correctly installed.",
- 350, wx.ClientDC(self))
- info.WebSite = ("http://www.bobo.com.cn", "BOBO VIDEO")
- info.Developers = ["Purpen"]
-
- wx.AboutBox(info)
-
- class RunApp(wx.App):
- def OnInit(self):
- win = SimpleEditor(None, 1, 'SimpleEditor')
- self.SetTopWindow(win)
- win.Show(True)
- return True
-
- if __name__ == '__main__':
- RunApp().MainLoop()
下载可以直接在命令行下运行(当然,环境一定要支持)。
分享到:
相关推荐
python UI可视化设计工具(WxPython可视化编辑器)
WxPython可视化编辑器.exe
WxPython 可视化 编辑器 是一款非常好用的 python编辑 类软件,软件中的功能十分全面好用,且简洁好用的画面设计等,用户们也能够更好的掌握与使用哦~ WxPython 可视化 编辑器
WxPython可视化编辑器是一款可视化的Python编辑器,各个组件配备官网翻译的中文文档跟对应链接,可以直接通过鼠标拖拽来设计程序 本工具只是用来生成界面代码的,WxPython是python的一个界面库,生成后自己复制粘贴...
wxPython写的拼图小游戏 Python 2.7 wxPython 2.8
自己用wxpython写的web摄像头界面,能显示与其相对应分辨率的rgb565格式的图像。
用wxpython写的一个聊天室程序,有客服端和服务器端,多人聊天,有头像功能,采用udp
基于wxpython写的一款电子书软件的源码。功能强大且语言简洁。只用于电脑上观看,不支持手机。供python wxpython学习使用。
wxPython写的一个拼图游戏 Python版本2.7
wxPython写的类似qq截图的小程序
wxPython写的一个拼图小游戏 Python版本是2.7
wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程
游戏地图编辑器 Tile 砖块地图 wxPython,一开始考虑不全面,后面写的时候就只有一个心思,烂代码,完成就好。代码创建控件实例是个痛苦的过程,因为做的基本都是重复的事,能用循环的最好写进循环,熟悉控件后推荐...
几本很不错的关于python gui的wxPython的书,包括“wxPython in Action(中文版)” 活学活用wxPython “《wxPython in Action》Noel Rappin, Robin Dunn著 2006年版”
将前面写的决策树模型,用wxPython写一个可视化的界面
wxPython是一个用于wxWidgets(它是用C ++编写的)的Python包装器,这是一个流行的跨平台GUI工具包。最近在学习python的可视化,学到wxpython,就简单制作了一个wxpython版本的简易记事本。
用wxPython写界面非常的方便,里面有许多小程序