From: Stefanie L. <lu...@ip...> - 2009-05-27 12:46:08
|
Hi! I'm trying to print my plots in a wxScrolledPanel under Windows XP but it dosen't work. I only can print / preview the start of the plot on the left upper site, the rest of page is empty: http://www.snowflake-sl.info/printing_in_wx.JPG I used printing according the example of matplotlib printing_in_wx.py. ... self.canvas = FigureCanvasWx(self.panel, -1, self.fig) ... self.Bind(wx.EVT_MENU, self.onPrint, id=MENU_PRINT) ... def onPrint(self,event=None): self.canvas.Printer_Print(event=event) ... BTW if I want to run this demo, Python crashes. Any ideas? Kind regards, Stefanie |
From: Christopher B. <Chr...@no...> - 2009-05-27 16:27:05
|
Stefanie Lück wrote: > I'm trying to print my plots in a wxScrolledPanel under Windows XP but > it dosen't work. I only can print / preview the start of the plot on the > left upper site, the rest of page is empty: I wonder if that has to do with how you are using the scolledpanel, and DCs. Post a sample (as a as-small-as-possible-running-app, if you can), and we can take a look. > I used printing according the example of matplotlib printing_in_wx.py. > BTW if I want to run this demo, Python crashes. it works fine for me on OS-X What messages to you get with your crash? What versions of Python, wxPython and MPL are you running? -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chr...@no... |
From: Stefanie L. <lu...@ip...> - 2009-05-28 09:44:05
|
Hi Chris: Thanks for your answer! I try the printing_in_wx.py with Python 2.5, MPlot 0.8 and wxPython 2.8.7.1. and its just crashes after I want to print or preview (unfortunately without any error message) and closes Python. Here's an example of my program: # -*- coding: latin1 -*- import sys import os import wx import wx.lib.scrolledpanel as SP from wx.lib.mixins.listctrl import CheckListCtrlMixin import wx.lib.mixins.listctrl as listmix import pylab from matplotlib.backends.backend_wx import FigureCanvasWx from matplotlib.font_manager import fontManager, FontProperties class CheckListCtrl(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin): def __init__(self, parent, nr): wx.ListCtrl.__init__(self, parent, -1, size=(900, ((nr*8)+50)), style=wx.LC_REPORT|wx.LC_VRULES|wx.LC_HRULES) listmix.ListCtrlAutoWidthMixin.__init__(self) class MyFrame(wx.Frame, listmix.ColumnSorterMixin): def __init__(self): wx.Frame.__init__(self, None, -1, "Results", size=(300, 300)) self.panel = SP.ScrolledPanel(self, -1) self.panel.SetBackgroundColour('WHITE') d = {1:('test','22')} nr = 1 self.list = CheckListCtrl(self.panel, nr) self.list.SetFont(wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL)) self.b = wx.Button(self.panel, 10, "Copy to clipboard") self.b.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) self.Bind(wx.EVT_BUTTON, self.to_clipboard, self.b) l1 = wx.StaticText(self.panel, -1, "RNAi Scan Results") l1.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.NORMAL)) dummy = wx.StaticText(self.panel, -1, "") self.fig = pylab.figure(figsize=(10,8)) self.fig.subplots_adjust(hspace = 0.5, left=0.07, right=0.95, top=0.93) self.canvas = FigureCanvasWx(self.panel, -1, self.fig) self.vbox = wx.BoxSizer(wx.VERTICAL) sizer = wx.GridBagSizer(hgap = 10, vgap = 10) sizer.Add(l1, pos = (0, 1), flag = wx.ALIGN_CENTER) sizer.Add(self.list, pos = (1, 1), span = (2,1), flag = wx.EXPAND|wx.GROW|wx.ALIGN_CENTER) sizer.Add(self.b, pos = (1, 2)) sizer.Add(self.canvas, pos = (3, 1), flag = wx.EXPAND|wx.GROW|wx.ALIGN_CENTER) sizer.Add(dummy, pos = (4, 1), flag = wx.EXPAND|wx.GROW|wx.ALIGN_CENTER) self.vbox.Add(sizer, 1, wx.ALL|wx.ALIGN_CENTER,10) self.panel.SetSizer(self.vbox) self.panel.SetAutoLayout(1) self.panel.SetupScrolling() self.list.InsertColumn(0, "ID") self.list.InsertColumn(1, "All Hits") self.list.InsertColumn(2, "Efficient Hits") for key, data in d.iteritems(): index = self.list.InsertStringItem(sys.maxint, data[0]) self.list.SetStringItem(index, 1, data[1]) self.list.SetItemData(index, key) self.list.SetColumnWidth(0, 200) self.list.SetColumnWidth(1, 100) self.list.SetColumnWidth(2, 150) self.Show() self.ShowFullScreen(True, style = wx.FULLSCREEN_NOMENUBAR) self.Build_Menus() self.plot_data(self.fig) 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.save, id=MENU_SAVE) self.Bind(wx.EVT_MENU, self.onExit , id=MENU_EXIT) self.Bind(wx.EVT_MENU, self.onHelp, id=MENU_HELP) 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 onHelp(self, event=None): pass def onExit(self,event=None): self.Destroy() def save(self, event): pass def to_clipboard(self, evt): f = open("data_hits.txt", "r") msg = 'Id' + '\t' + 'All Hits' + '\t' 'Eff Hits' + '\n' + f.read() f.close() data = wx.TextDataObject() data.SetText(msg) if wx.TheClipboard.Open(): wx.TheClipboard.SetData(data) wx.TheClipboard.Flush() wx.TheClipboard.Close() def plot_data(self, figure): query_plot = figure.add_subplot(1, 1, 1) listex = [0,1,2,3] listey = [0,1,2,3] query_plot.plot(listex,listey) if __name__ == '__main__': app = wx.PySimpleApp() frame = MyFrame() frame.Show(True) app.MainLoop() ----- Original Message ----- From: "Christopher Barker" <Chr...@no...> To: "matplotlib-users" <mat...@li...> Sent: Wednesday, May 27, 2009 6:28 PM Subject: Re: [Matplotlib-users] Printing in wx Stefanie Lück wrote: > I'm trying to print my plots in a wxScrolledPanel under Windows XP but > it dosen't work. I only can print / preview the start of the plot on the > left upper site, the rest of page is empty: I wonder if that has to do with how you are using the scolledpanel, and DCs. Post a sample (as a as-small-as-possible-running-app, if you can), and we can take a look. > I used printing according the example of matplotlib printing_in_wx.py. > BTW if I want to run this demo, Python crashes. it works fine for me on OS-X What messages to you get with your crash? What versions of Python, wxPython and MPL are you running? -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chr...@no... ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com _______________________________________________ Matplotlib-users mailing list Mat...@li... https://lists.sourceforge.net/lists/listinfo/matplotlib-users |