On Jan 25, 9:51 pm, Akand Islam <sohel...@gmail.com> wrote: > Thanks for your response. Actually I already know I have to create > "OnPrint" method followed by adding the menu named "Print" that calls > "OnPrint" method. But the problem I am facing is to implement it. Here > are the codes I am adding (from Tutorial) which make an editor and I > want to add printing option so that I can print whatever is written in > the editor. I will appreciate if you add coding with this file.
Well i don't see where you added the methods or the menu command. * scratches head* Man I've got to tell you that this code is a horrible example to learn from! The styling abominations and obfuscation is just simply atrocious! It seems the author was trying to confuse everyone including himself! So i modified it just a bit. I added the OnPrint method however i am leaving it up to you to build the Print menu and do the binding. I put some comments where you need to add the print menu. Just look at how the other menus are created and you'll figure it out ;) Let us know if you need more help. #--START CODE--# 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() 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', 'Terminate the program') self.Bind(wx.EVT_MENU, self.OnExit, item) menuBar = wx.MenuBar() menuBar.Append(fileMenu, '&File') # Add the fileMenu to the MenuBar self.SetMenuBar(menuBar) # Add the menuBar to the Frame def SetTitle(self): # MainWindow.SetTitle overrides wx.Frame.SetTitle, so we have to # call it using super: super(MainWindow, self).SetTitle('Editor %s'%self.filename) def defaultFileDialogOptions(self): ''' Return a dictionary with file dialog options that can be used in both the save file dialog as well as in the open file dialog. ''' return dict( message='Choose a file', defaultDir=self.dirname, wildcard='*.*' ) def askUserForFilename(self, **dialogOptions): dialog = wx.FileDialog(self, **dialogOptions) if dialog.ShowModal() == wx.ID_OK: userProvidedFilename = True self.filename = dialog.GetFilename() self.dirname = dialog.GetDirectory() self.SetTitle() # Update the window title with the new filename else: userProvidedFilename = False dialog.Destroy() return userProvidedFilename # Event handlers: def OnAbout(self, event): dialog = wx.MessageDialog(self, 'A sample editor\n' 'in wxPython', 'About Sample Editor', wx.OK) dialog.ShowModal() dialog.Destroy() def OnExit(self, event): self.Close() # Close the main window. 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.defaultFileDialogOptions() ): 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.defaultFileDialogOptions() ): self.OnSave(event) def OnPrint(self, event): sys.stdout.write(self.control.GetValue()) app = wx.App() frame = MainWindow() frame.Show() app.MainLoop() #--END CODE--# -- http://mail.python.org/mailman/listinfo/python-list