Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > simple oop question (hopefully)

Reply
Thread Tools

simple oop question (hopefully)

 
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      10-30-2006
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])

 
Reply With Quote
 
 
 
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      10-30-2006
I am tagging this so I can find it again (google groups) www.dexrow.com
http://www.velocityreviews.com/forums/(E-Mail Removed) 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])


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need help with simple OOP Python question Kristofer Tengström Python 8 09-08-2011 10:53 AM
Simple OOP question Nemisis ASP .Net 10 08-25-2006 11:26 AM
new to OOP (think a simple question..) Gu Javascript 3 05-13-2005 03:12 PM
Simple OOP, polymorphism design question Jacek Dziedzic C++ 6 09-04-2004 01:47 AM
simple definition of OOP? John Boorman C++ 1 02-02-2004 10:13 PM



Advertisments