On Jan 26, 12:54 am, rantingrick <rantingr...@gmail.com> wrote: > On Jan 26, 12:19 am, rantingrick <rantingr...@gmail.com> wrote: > > Actually i found more cruft. Here is something that would be > acceptable although i had to wrap lines shorter than i normally would > for the sake of Usenet. Who ever wrote that code should be lashed 50 > times! You still need some error handling for the open and save file > methods but crikey i can't do everything ;-) > > #--STARTCODE--# > import wx > import os.path, sys > > class MainWindow(wx.Frame): > def __init__(self, filename='noname.txt'): > wx.Frame.__init__(self, None, size=(400,200)) > self.filename = filename > self.dirname = '.' > self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) > self.CreateMenu() > self.CreateStatusBar() > self.SetTitle('Editor %s'%self.filename) > self.dlgdefaults = { > 'message':'Choose a file', > 'defaultDir':self.dirname, > 'wildcard':'*.*' > } > > def CreateMenu(self): > fileMenu = wx.Menu() > item = fileMenu.Append(wx.ID_ABOUT, '&About', 'Info') > self.Bind(wx.EVT_MENU, self.OnAbout, item) > item = fileMenu.Append( wx.ID_OPEN, '&Open', 'Info') > self.Bind(wx.EVT_MENU, self.OnOpen, item) > item = fileMenu.Append(wx.ID_SAVE, '&Save', 'Info') > self.Bind(wx.EVT_MENU, self.OnSave, item) > item = fileMenu.Append(wx.ID_SAVEAS, 'Save &As', 'Info') > self.Bind(wx.EVT_MENU, self.OnSaveAs, item) > # > # psst: Hey put the print menu here!!!! > # psst: do the binding here!!!! > # > fileMenu.AppendSeparator() > item = fileMenu.Append(wx.ID_EXIT, 'E&xit', 'Exit') > self.Bind(wx.EVT_MENU, self.OnExit, item) > menuBar = wx.MenuBar() > # Add the fileMenu to the MenuBar > menuBar.Append(fileMenu, '&File') > # Add the menuBar to the Frame > self.SetMenuBar(menuBar) > > def askUserForFilename(self, **kw): > dialog = wx.FileDialog(self, **kw) > if dialog.ShowModal() == wx.ID_OK: > userProvidedFilename = True > self.filename = dialog.GetFilename() > self.dirname = dialog.GetDirectory() > self.SetTitle('Editor %s'%(self.filename)) > else: > userProvidedFilename = False > dialog.Destroy() > return userProvidedFilename > > def OnAbout(self, event): > dialog = wx.MessageDialog( > self, > 'A sample editor in wxPython', > 'About Sample Editor', > wx.OK > ) > dialog.ShowModal() > dialog.Destroy() > > def OnExit(self, event): > self.Close() > > def OnSave(self, event): > textfile = open(os.path.join(self.dirname, self.filename), > 'w') > textfile.write(self.control.GetValue()) > textfile.close() > > def OnOpen(self, event): > if self.askUserForFilename( > style=wx.OPEN, > **self.dlgdefaults > ): > textfile = open(os.path.join(self.dirname, self.filename), > 'r') > self.control.SetValue(textfile.read()) > textfile.close() > > def OnSaveAs(self, event): > if self.askUserForFilename( > defaultFile=self.filename, > style=wx.SAVE, > **self.dlgdefaults > ): > self.OnSave(event) > > def OnPrint(self, event): > sys.stdout.write(self.control.GetValue()) > > app = wx.App() > frame = MainWindow() > frame.Show() > app.MainLoop() > > #--ENDCODE--#
I really appreciate your cooperation. The codes you have written print in command window, but I want to print (i.e. a popup window will appear to select printer in order to print). Please assist me regarding this. I am optimist that I can take care menu creating, binding, error handling by myself. Therefore you can only show me the "OnPrint" function to fulfill my purpose. -- Akand -- http://mail.python.org/mailman/listinfo/python-list