wxPython 一个很好的窗口、菜单创建例子
2012-08-16 13:31
399 查看
import wx # -------- new: we need os module to handle path, dir stuffs----------- import os # ------- new: make our own id numbers -------------- ID_OPEN = 100 ID_SAVE = 101 ID_EXIT = 102 ID_ABOUT = 200 class SimpleEditor(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size = (700, 600)) # ---------------------create a text area ---------------------- self.text = wx.TextCtrl(self, 1, style=wx.TE_MULTILINE) # ---------------------create a status bar --------------------- self.CreateStatusBar() # ---------------------create a menu bar ----------------------- menuBar = wx.MenuBar() # ---------------------create a menu --------------------------- # making two new menus menuFile = wx.Menu() menuHelp = wx.Menu() # ------------- Changed: use our own id instead wx.ID_ANY ------------------ #menuFile.Append(wx.ID_ANY, '&Open', 'open a file') #menuFile.Append(wx.ID_ANY, '&Save', 'save the file') menuFile.Append(ID_OPEN, '&Open', 'open a file') menuFile.Append(ID_SAVE, '&Save', 'save the file') # ---------------------------------------------------------------------- # adding a separator to separate the menu list menuFile.AppendSeparator() # ------------- Changed: use our own id instead wx.ID_ANY ------------------ #menuFile.Append(wx.ID_ANY, 'E&xit', 'terminate the program') #menuHelp.Append(wx.ID_ANY, 'A&bout', 'info about this program') menuFile.Append(ID_EXIT, 'E&xit', 'terminate the program') menuHelp.Append(ID_ABOUT, 'A&bout', 'info about this program') # ------------------------------------------------------------------------- # add the menu list we made to menu bar # This will show 'File' on the menu bar menuBar.Append(menuFile, '&File') # This will show 'Help' on the menu bar menuBar.Append(menuHelp, '&Help') # Last step, set the menu bar self.SetMenuBar(menuBar) # ------------------------- new: 4 events handler ------------------------------- wx.EVT_MENU(self, ID_OPEN, self.OnOpen) wx.EVT_MENU(self, ID_SAVE, self.OnSave) wx.EVT_MENU(self, ID_EXIT, self.OnExit) wx.EVT_MENU(self, ID_ABOUT, self.OnAbout) # ---------------------- new: Declare 4 functions for the events-------------------------- # open file when you click File -> open def OnOpen(self, event): # open a file using wx.FileDialog # wx.FileDialog(self, parent, message = FileSelectorPromptStr, defaultDir = EmptyString, defaultFile = EmptyString, # wildcard = FileSelectorDefaultWildcardStr, style = FD_DEFAULT_STYLE, pos = DefaultPosition) dlg = wx.FileDialog(self, message = 'Choose a file', defaultDir = '', defaultFile = '', wildcard = '*.*', style = wx.OPEN) # if we click 'OK' button it do something if dlg.ShowModal() == wx.ID_OK: # get the file name and directory self.filename = dlg.GetFilename() self.dirname = dlg.GetDirectory() # add the directory path and file name f = open(os.path.join(self.dirname, self.filename),'r') # read the file , show on the text area self.text.SetValue(f.read()) f.close() dlg.Destroy() # save file when you click File -> save def OnSave(self, event): # get the current value from text area itcontains = self.text.GetValue() # overwrite the same file with current value f = open(os.path.join(self.dirname, self.filename), 'w') f.write(itcontains) f.close() # exit program when you click File -> exit def OnExit(self, event): # close the frame self.Close(True) # about this program Help -> About def OnAbout(self, event): # make a message dialog # wx.MessageDialog(self, parent, message, caption=MessageBoxCaptionStr, # style=wxOK|wxCANCEL|wxCENTRE, pos=DefaultPosition) dlg = wx.MessageDialog(self, message = 'A simple editor created by wxPython!\n' 'author : eookoo \n date : Apr 4, 2007', caption = 'About this program', style = wx.OK) # show the message dialog dlg.ShowModal() # we destroy it when finished dlg.Destroy() # ---------------------------------------------------------------------------------------------- if __name__=='__main__': app = wx.PySimpleApp() frame = SimpleEditor(None, wx.ID_ANY, 'Simple Editor') frame.Show() app.MainLoop()
相关文章推荐
- 窗口作业1 作业: 1.创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存
- 这个例子演示了如何创建一个父窗口部件和子窗口部件。
- win32 api 创建窗口的一个简单例子
- lesson7:GUI:创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”
- 创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜单,有两个菜
- 【VC编程】笔记1--创建一个Win32的应用程序,并显示创建的窗口和菜单
- .创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜单,有两个
- .创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜单,有两个
- 作业: 1.创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜
- 关于窗口跳转,一个很好的例子
- 专门用于消息回调窗口的窗口标识HWND_MESSAGE(创建一个非可视、没有z-order的窗口)
- 用Dx创建一个简单的窗口
- 转一个Oracle创建自动增长的例子
- 一个理解装饰器很好的例子
- 创建一个简单的win32 应用窗口程序
- WINDOWS游戏编程学习笔记(二):完整创建一个窗口
- 一个动态创建卸载应用程序域的例子
- OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
- 【Linux】一个简单的线程创建和同步的例子
- 使用Popup窗口创建无限级Web页菜单(1)