X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dfef5d5165735ab6c9e1b0bd9c4ece1b6f848f26..7d36c6a8eb8b1a7d3f62087efa80d9075c5c5e5c:/wxPython/demo/TablePrint.py diff --git a/wxPython/demo/TablePrint.py b/wxPython/demo/TablePrint.py index 7fa8e4eeb3..73818dda8a 100644 --- a/wxPython/demo/TablePrint.py +++ b/wxPython/demo/TablePrint.py @@ -1,37 +1,38 @@ -from wxPython.wx import * -from wxPython.lib.printout import PrintTable - -import os +import os +import wx +import wx.lib.printout as printout #--------------------------------------------------------------------------- buttonDefs = { 814 : ('PreviewWide', 'Preview print of a wide table'), 815 : ('PreviewNarrow', 'Preview print of a narrow table with color highlights'), + 816 : ('PreviewText', 'Preview print of a text file'), 818 : ('OnPreviewMatrix', 'Preview print of a narrow column grid without a table header'), 817 : ('PreviewLine', 'Preview print to demonstrate the use of line breaks'), 819 : ('PrintWide', 'Direct print (no preview) of a wide table'), } -class TablePanel(wxPanel): +class TablePanel(wx.Panel): def __init__(self, parent, log, frame): - wxPanel.__init__(self, parent, -1) + wx.Panel.__init__(self, parent, -1) self.log = log self.frame = frame - box = wxBoxSizer(wxVERTICAL) - box.Add(20, 30) + box = wx.BoxSizer(wx.VERTICAL) + box.Add((20, 30)) keys = buttonDefs.keys() keys.sort() + for k in keys: text = buttonDefs[k][1] - btn = wxButton(self, k, text) - box.Add(btn, 0, wxALIGN_CENTER|wxALL, 15) - EVT_BUTTON(self, k, self.OnButton) + btn = wx.Button(self, k, text) + box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 15) + self.Bind(wx.EVT_BUTTON, self.OnButton, btn) - self.SetAutoLayout(true) + self.SetAutoLayout(True) self.SetSizer(box) def OnButton(self, evt): @@ -40,18 +41,18 @@ class TablePanel(wxPanel): eval(code) def ReadData(self): - test_file = "./data/TestTable.txt" + test_file = "./data/testtable.txt" file = open(test_file,'r',1) i = 0 data = [] while 1: text = file.readline() - text = string.strip(text) + text = text.strip() if not text: break - list_val = string.splitfields(text,'\t') + list_val = text.split('\t') data.append(list_val) file.close() @@ -60,7 +61,7 @@ class TablePanel(wxPanel): def PreviewWide(self): self.ReadData() - prt = PrintTable(self.frame) + prt = printout.PrintTable(self.frame) prt.data = self.data prt.left_margin = 0.5 prt.set_column = [1.0, 1.0, 1.0, 1.5, 1.0, 3.0] @@ -68,13 +69,14 @@ class TablePanel(wxPanel): prt.SetLandscape() prt.SetColumnLineSize(2, 3) - prt.SetColumnLineColour(3, wxNamedColour('RED')) + prt.SetColumnLineColour(3, wx.NamedColour('RED')) prt.SetRowLineSize(1, 3) - prt.SetRowLineColour(5, wxNamedColour('RED')) + prt.SetRowLineColour(5, wx.NamedColour('RED')) - prt.SetHeader("wxWindows Applications") + prt.SetHeader("wx.Windows Applications") prt.SetFooter() + prt.SetFooter("Date: ", type = "Date", align=wx.ALIGN_RIGHT, indent = -1, colour = wx.NamedColour('RED')) prt.Preview() def PreviewNarrow(self): @@ -86,26 +88,26 @@ class TablePanel(wxPanel): val = self.header new_header = [val[0], val[1], val[2], val[4], val[5]] - prt = PrintTable(self.frame) + prt = printout.PrintTable(self.frame) prt.data = new_data prt.set_column = [ 1, 1, 1, 1, 2] prt.label = new_header - prt.SetColAlignment(1, wxALIGN_CENTRE) - prt.SetColBackgroundColour(0, wxNamedColour('RED')) - prt.SetColTextColour(0, wxNamedColour('WHITE')) - prt.SetCellColour(4, 0, wxNamedColour('LIGHT BLUE')) - prt.SetCellColour(4, 1, wxNamedColour('LIGHT BLUE')) - prt.SetCellColour(17, 1, wxNamedColour('LIGHT BLUE')) - - prt.SetColBackgroundColour(2, wxNamedColour('LIGHT BLUE')) - prt.SetCellText(4, 2, wxNamedColour('RED')) - - prt.SetColTextColour(3, wxNamedColour('RED')) - prt.label_font_colour = wxNamedColour('WHITE') - prt.SetHeader("wxWindows Applications", colour = wxNamedColour('RED')) - - prt.SetHeader("Date", align=wxALIGN_RIGHT, indent = -2, colour = wxNamedColour('BLUE')) - prt.SetFooter("Page No", colour = wxNamedColour('RED'), type ="Num") + prt.SetColAlignment(1, wx.ALIGN_CENTRE) + prt.SetColBackgroundColour(0, wx.NamedColour('RED')) + prt.SetColTextColour(0, wx.NamedColour('WHITE')) + prt.SetCellColour(4, 0, wx.NamedColour('LIGHT BLUE')) + prt.SetCellColour(4, 1, wx.NamedColour('LIGHT BLUE')) + prt.SetCellColour(17, 1, wx.NamedColour('LIGHT BLUE')) + + prt.SetColBackgroundColour(2, wx.NamedColour('LIGHT BLUE')) + prt.SetCellText(4, 2, wx.NamedColour('RED')) + + prt.SetColTextColour(3, wx.NamedColour('RED')) + prt.label_font_colour = wx.NamedColour('WHITE') + prt.SetHeader("wxWindows Applications", colour = wx.NamedColour('RED')) + + prt.SetHeader("Printed: ", type = "Date & Time", align=wx.ALIGN_RIGHT, indent = -1, colour = wx.NamedColour('BLUE')) + prt.SetFooter("Page No", colour = wx.NamedColour('RED'), type ="Num") prt.Preview() def OnPreviewMatrix(self): @@ -120,7 +122,7 @@ class TablePanel(wxPanel): for val in range(total_col): columns.append(hsize) - prt = PrintTable(self.frame) + prt = printout.PrintTable(self.frame) for row in range(total_row): value = [] @@ -129,7 +131,7 @@ class TablePanel(wxPanel): data.append(value) for col in range(total_col): - prt.SetColAlignment(col, wxALIGN_CENTRE) + prt.SetColAlignment(col, wx.ALIGN_CENTRE) prt.SetLandscape() prt.text_font_size = 8 @@ -141,16 +143,27 @@ class TablePanel(wxPanel): prt.Preview() def PreviewLine(self): - prt = PrintTable(self.frame) + prt = printout.PrintTable(self.frame) prt.label = ["Header 1", "Header 2", "Header 3"] prt.set_column = [] prt.data = [["Row 1", "1", "2"], ["Row 2", "3", "4\nNew Line to see if it also can wrap around the cell region properly\nAnother new line"]] prt.SetFooter() prt.Preview() + def PreviewText(self): + prt = printout.PrintTable(self.frame) + prt.SetHeader("PROCLAMATION") + file = open('data/proclamation.txt') + data = [] + for txt in file: + data.append(txt.strip()) + file.close() + prt.data = data + prt.Preview() + def PrintWide(self): self.ReadData() - prt = PrintTable(self.frame) + prt = printout.PrintTable(self.frame) prt.data = self.data prt.left_margin = 0.5 @@ -172,12 +185,6 @@ def runTest(frame, nb, log): -import os -import wxPython.lib.printout - - - - overview = """\

Table Printing

@@ -186,7 +193,7 @@ This demo shows various ways of using the new PrintOut class. To understand the class you need to examine the demo examples and the library printout.py module classes.

-The initial class primarily contains a Table preview/printing class. There is alot of flexibility +The initial class primarily contains a Table preview/printing class. There is a lot of flexibility in manipulating the placement, sizing, colours, alignment of the table text and cell background colors. There are also a number of options for printing Header and Footer information on the page.

@@ -202,5 +209,14 @@ the program knows it before trying to parse through the available pages. This w when the framework allows for it. -""" % os.path.join(os.path.dirname(wxPython.lib.printout.__file__), "printout.py") +""" % os.path.join(os.path.dirname(printout.__file__), "printout.py") + + + + + +if __name__ == '__main__': + import sys,os + import run + run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])