I'm looking at the possibility of porting a Tkinter-based application to
Cocoa, and since my app is already written in Python, PyObjC is the
logical starting point for me. However, what I'm not sure about is how
much translation I'd have to do between Python datatypes and Objective-C
datatypes. For instance, the code below reads data as a list, massages
the data a bit, then returns a tuple that is then inserted into a
Tkinter table display.
if self.catname == 'All':
self.catlist = os.popen('/sw/bin/fink list', 'r',
os.O_NONBLOCK)
else:
self.catlist = os.popen('/sw/bin/fink list
--section=%s' % self.catname, 'r', os.O_NONBLOCK)
for line in self.catlist:
newline = line.split('\t')
rawcat = newline[0]
if rawcat == '(i)':
firstcat=rawcat.replace('(i)', 'outdated')
elif rawcat == ' i ':
firstcat=rawcat.replace('i', 'current')
elif rawcat == ' p ':
firstcat=rawcat.replace('p', 'provided')
else:
firstcat = rawcat
newlist = (firstcat, newline[1], newline[2],
newline[3].strip('\n')) #finalline)
self.infotable.insert('end' , newlist)
Except for the line "self.infotable.insert('end' , newlist)", there is
nothing Tkinter-specific in this code.
If I used Interface Builder for the table view, would this data import
cleanly into the GUI, or would I have to set up some sort of NS-prefixed
datatype (NSMutableArray?) to parse and display the data correctly? If
so, how could this snippet be rewritten?
My preference in porting my application is to refactor the GUI layer
from Tkinter to PyObjC, but otherwise retain as much of my code as
possible in its present (Python-generic) form. Is this a feasible
approach, or does using PyObjC require adopting more of an "Objective-C"
mindset, designing the entire app from the top down to use
NS*-datatypes? That's a lot more work and I might as well learn
Objective-C and just use that.
TIA,
Kevin
--
Kevin Walzer
Code by Kevin
http://www.codebykevin.com
_______________________________________________
Pythonmac-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/pythonmac-sig