X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/demo/TablePrint.py?ds=sidebyside diff --git a/wxPython/demo/TablePrint.py b/wxPython/demo/TablePrint.py deleted file mode 100644 index 73818dda8a..0000000000 --- a/wxPython/demo/TablePrint.py +++ /dev/null @@ -1,222 +0,0 @@ - -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(wx.Panel): - def __init__(self, parent, log, frame): - wx.Panel.__init__(self, parent, -1) - self.log = log - self.frame = frame - - box = wx.BoxSizer(wx.VERTICAL) - box.Add((20, 30)) - keys = buttonDefs.keys() - keys.sort() - - for k in keys: - text = buttonDefs[k][1] - 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.SetSizer(box) - - def OnButton(self, evt): - funct = buttonDefs[evt.GetId()][0] - code = 'self.' + funct + '()' - eval(code) - - def ReadData(self): - test_file = "./data/testtable.txt" - file = open(test_file,'r',1) - i = 0 - - data = [] - while 1: - text = file.readline() - text = text.strip() - if not text: - break - - list_val = text.split('\t') - data.append(list_val) - file.close() - - self.header = data[0] - self.data = data[1:] - - def PreviewWide(self): - self.ReadData() - 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] - prt.label = self.header - prt.SetLandscape() - - prt.SetColumnLineSize(2, 3) - prt.SetColumnLineColour(3, wx.NamedColour('RED')) - - prt.SetRowLineSize(1, 3) - prt.SetRowLineColour(5, wx.NamedColour('RED')) - - 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): - self.ReadData() - new_data = [] - for val in self.data: - new_data.append([val[0], val[1], val[2], val[4], val[5]]) - - val = self.header - new_header = [val[0], val[1], val[2], val[4], val[5]] - - prt = printout.PrintTable(self.frame) - prt.data = new_data - prt.set_column = [ 1, 1, 1, 1, 2] - prt.label = new_header - 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): - total_col = 45 - total_row = 10 - hsize = 0.2 - vsize = 0.2 - - data = [] - startx = 1.0 - columns = [] - for val in range(total_col): - columns.append(hsize) - - prt = printout.PrintTable(self.frame) - - for row in range(total_row): - value = [] - for col in range(total_col): - value.append(str(col)) - data.append(value) - - for col in range(total_col): - prt.SetColAlignment(col, wx.ALIGN_CENTRE) - - prt.SetLandscape() - prt.text_font_size = 8 - prt.cell_left_margin = 0 - - prt.data = data - prt.set_column = columns - prt.SetHeader("Test of Small Grid Size") - prt.Preview() - - def PreviewLine(self): - 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 = printout.PrintTable(self.frame) - prt.data = self.data - - prt.left_margin = 0.5 - prt.set_columns = [ 1, 1, 1, 1, 2, 1, 3 ] - prt.label = self.header - prt.SetLandscape() - prt.Print() - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TablePanel(nb, log, frame) - return win - -#--------------------------------------------------------------------------- - - - - - -overview = """\ - -

Table Printing

- -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 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. -

-There is also a class to extract the parameters from a wxGrid and easily recreate a Table printout. -

-The data is printed from a list object containing the column and row values. The label or table header -can be defined and will be repeated for all pages. -

-The correct "Total Page" does get calculated and used in the print out Footer. -

-There is still problems with the print framework to properly get the total pages in the preview unless -the program knows it before trying to parse through the available pages. This will be fixed -when the framework allows for it. - - -""" % 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:]) -