I am tagging this so I can find it again (google groups) www.dexrow.com [EMAIL PROTECTED] wrote: > I am just trying to acess a function in wordgrid (savefile) to a button > that is defined in TestFrame. I can't seem to make it work I either > get an error that my variable isn't global or it makes other > complaints. thanks in advance.. sorry for the simple question.. > > > > > import wx > import wx.grid as gridlib > import sys > > > > #--------------------------------------------------------------------------- > > class WordGrid(gridlib.Grid): > > def __init__(self, parent, log): > gridlib.Grid.__init__(self, parent, -1) > self.loadFile() > > self.CreateGrid(len(self.rows), self.widestRow) > > for r, row in enumerate(self.rows): > for c, col in enumerate(row): > self.SetCellValue(r, c, col) > self.SetColSize(c, 10*self.widestCol) > > for c, label in enumerate(self.header): > self.SetColLabelValue(c, label) > > def loadFile(self): > #from_file > infile = open(sys.argv[1], 'r') #The first argument passed in is > the file name > foundHeader = False > self.rows = [] > for line in infile: > if sys.argv[2] in line: #look for the second argument and > make that the header > #removefirst = line.split(' ') > self.header = line.split() > #foundHeader = 'true' > continue # we don't want to process this line any > further > else: > self.rows.append(line.split()) > > self.widestRow = max([len(r) for r in self.rows]) > self.widestCol = max([len(c) for c in [r for r in self.rows]]) > def savefile(self): > outfile = open(sys.argv[1], 'w') #open the file defined in the > output line for writing > for row in self.rows: > outfile.write(row) > > print('this is a test to see if I can Crash it') > > > > class TestFrame(wx.Frame): > def __init__(self, parent, log): > > wx.Frame.__init__(self, parent, -1, "Dex Tracker Sco Editor", > size=(640,480)) > p = wx.Panel(self, -1, style=0) > grid = WordGrid(p, log) > #grid = CustTableGrid(p, log) > b = wx.Button(p, -1, "Save Grid") > b.SetDefault() > self.Bind(wx.EVT_BUTTON, self.OnButton, b) > b.Bind(wx.EVT_SET_FOCUS, self.OnButtonFocus) > bs = wx.BoxSizer(wx.VERTICAL) > bs.Add(grid, 1, wx.GROW|wx.ALL, 5) > bs.Add(b) > p.SetSizer(bs) > > def OnButton(self, evt): > print "button selected" > grid = WordGrid(self, log).savefile() > #self.WordGrid.savefile(self) > > def OnButtonFocus(self, evt): > print "button focus" > > #--------------------------------------------------------------------------- > #def main(): > > def main(From_File, find_string): > """This is the entire editor for .sco files.. It doesn't realy > care if it is music or not. Any file that you lay out with even rows > and collums > can be displayed The first argument passed to main is the file to > be used and the second if the string to be used as the command to set > up the header of the grid. > The sting you wish to use to identify the header should be placed > last so it doesn't show up in the grid. > """ > > import sys > > app = wx.PySimpleApp() > frame = TestFrame(None, sys.stdout) > frame.Show(True) > app.MainLoop() > pass > > if __name__ == '__main__': > import sys > #try: > main(sys.argv[1], sys.argv[2])
-- http://mail.python.org/mailman/listinfo/python-list