⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printing_in_wx.py

📁 非原创。很好的python例子
💻 PY
字号:
#!/usr/bin/env python# printing_in_wx.py# """This examples demonstrates Printing (ie, to a printer) with amatplotlib figure using a wx Frame.  This borrows the data fromembedding_in_wx.py, but with several changes:  Menus for       Save           export figure (png,eps,bmp) to file      Copy           copy bitmap of figure to the system clipboard     Print Setup    setup size of figure for printing     Print Preview  preview printer page     Print          send figure to a system printer     Exit           end application         where 'figure' means an image of the matplotlib canvas   In addition, "Ctrl-C" is bound to Copy-figure-to-clipboardThis is a very simple use of matplotlib, and mostly focused ondemonstrating the interaction between wxPython and the matplotlibfigure canvas.Matt Newville <newville@cars.uchicago.edu>last modified: 12-Nov-2004license:  use it any way you want"""import wximport osimport matplotlib# either WX or WXAgg can be used here. # matplotlib.use('WX')# from matplotlib.backends.backend_wxagg import FigureCanvasWx as FigCanvasmatplotlib.use('WXAgg')from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigCanvasfrom matplotlib.figure import Figureimport matplotlib.numerix as numpyclass PlotFrame(wx.Frame):    help_msg="""  Menus for       Save           export figure (png,eps,bmp) to file      Copy           copy bitmap of figure to the system clipboard     Print Setup    setup size of figure for printing     Print Preview  preview printer page     Print          send figure to a system printer     Exit           end application         where 'figure' means an image of the matplotlib canvas   In addition, "Ctrl-C" is bound to copy-figure-to-clipboard"""    start_msg  = """        Use Menus to test printing        or Ctrl-C to copy plot image to clipboard  """    about_msg =  """        printing_in_wx version 0.1  12-Nov-2004        Matt Newville <newville@cars.uchicago.edu>"""    def __init__(self):        wx.Frame.__init__(self, None, -1, "Test Printing with WX Backend")        self.fig   = Figure((5.0,3.0), 100)        self.canvas= FigCanvas(self, -1, self.fig)        self.axes  = self.fig.add_axes([0.15,0.15,0.75,0.75])                 sizer = wx.BoxSizer(wx.VERTICAL)        sizer.Add(self.canvas, 1, wx.LEFT|wx.TOP|wx.GROW)        sizer.Add(wx.StaticText(self,-1, self.start_msg), 0,                  wx.ALIGN_LEFT|wx.TOP)                self.canvas.Bind(wx.EVT_KEY_DOWN, self.onKeyEvent)        self.SetSizer(sizer)        self.Fit()        self.Build_Menus()        self.Plot_Data()    def Build_Menus(self):        """ build menus """        MENU_EXIT  = wx.NewId()                MENU_SAVE  = wx.NewId()        MENU_PRINT = wx.NewId()        MENU_PSETUP= wx.NewId()        MENU_PREVIEW=wx.NewId()        MENU_CLIPB  =wx.NewId()        MENU_HELP   =wx.NewId()        menuBar = wx.MenuBar()                f0 = wx.Menu()        f0.Append(MENU_SAVE,   "&Export",   "Save Image of Plot")        f0.AppendSeparator()        f0.Append(MENU_PSETUP, "Page Setup...",    "Printer Setup")        f0.Append(MENU_PREVIEW,"Print Preview...", "Print Preview")        f0.Append(MENU_PRINT,  "&Print",           "Print Plot")        f0.AppendSeparator()        f0.Append(MENU_EXIT,   "E&xit", "Exit")        menuBar.Append(f0,     "&File");        f1 = wx.Menu()        f1.Append(MENU_HELP, "Quick Reference",  "Quick Reference")        menuBar.Append(f1, "&Help");        self.SetMenuBar(menuBar)        self.Bind(wx.EVT_MENU, self.onPrint,        id=MENU_PRINT)                self.Bind(wx.EVT_MENU, self.onPrinterSetup, id=MENU_PSETUP)        self.Bind(wx.EVT_MENU, self.onPrinterPreview, id=MENU_PREVIEW)        self.Bind(wx.EVT_MENU, self.onClipboard,    id=MENU_CLIPB)        self.Bind(wx.EVT_MENU, self.onExport,       id=MENU_SAVE)        self.Bind(wx.EVT_MENU, self.onExit ,        id=MENU_EXIT)        self.Bind(wx.EVT_MENU, self.onHelp,         id=MENU_HELP)    # the printer / clipboard methods are implemented    # in backend_wx, and so are very simple to use.    def onPrinterSetup(self,event=None):        self.canvas.Printer_Setup(event=event)    def onPrinterPreview(self,event=None):        self.canvas.Printer_Preview(event=event)    def onPrint(self,event=None):        self.canvas.Printer_Print(event=event)    def onClipboard(self,event=None):        self.canvas.Copy_to_Clipboard(event=event)    def onKeyEvent(self,event=None):        """ capture , act upon keystroke events"""        if event == None: return        key = event.KeyCode()        if (key < wx.WXK_SPACE or  key > 255):  return                if (event.ControlDown() and chr(key)=='C'): # Ctrl-C            self.onClipboard(event=event)    def onHelp(self, event=None):        dlg = wx.MessageDialog(self, self.help_msg,                               "Quick Reference",                               wx.OK | wx.ICON_INFORMATION)        dlg.ShowModal()        dlg.Destroy()    def onExport(self,event=None):        """ save figure image to file"""        file_choices = "PNG (*.png)|*.png|" \                       "PS (*.ps)|*.ps|" \                       "EPS (*.eps)|*.eps|" \                       "BMP (*.bmp)|*.bmp"                                                       thisdir  = os.getcwd()        dlg = wx.FileDialog(self, message='Save Plot Figure as...',                            defaultDir = thisdir, defaultFile='plot.png',                            wildcard=file_choices, style=wx.SAVE)        if dlg.ShowModal() == wx.ID_OK:            path = dlg.GetPath()            self.canvas.print_figure(path,dpi=300)            if (path.find(thisdir) ==  0):                path = path[len(thisdir)+1:]            print 'Saved plot to %s' % path    def onExit(self,event=None):        self.Destroy()    def Plot_Data(self):        t = numpy.arange(0.0,5.0,0.01)        s = numpy.sin(2.0*numpy.pi*t)        c = numpy.cos(0.4*numpy.pi*t)        self.axes.plot(t,s)        self.axes.plot(t,c)if __name__ == '__main__':    app = wx.PySimpleApp()    fig = PlotFrame()    fig.Show(True)    app.MainLoop()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -