Thread: [Pyobjc-dev] Adding outlets and actions without rewiring it all
Brought to you by:
ronaldoussoren
From: Antonio R. <an...@me...> - 2003-03-22 18:11:48
|
Excuse me if this is more my ineptitude with IB than a pyobjc question: Using Obj-C, when I change a class definition in IB by adding an outlet or an action, I can use the "Read Files" option to find the changes in the instance which I have wired up to my view. In PyObjc this is not an option. the way I'm understanding it now (and correct me if I am wrong), I have to re-instatiate and re-wire everytime I find that I forgot that I needed an extra outlet or action. Is that correct or am I missing something? I seem to remember that it was the same with the java bridge which was a real show stopper for those of us constantly tweaking our apps. Thanks all Antonio |
From: Just v. R. <ju...@le...> - 2003-03-22 18:42:06
|
Antonio Rodriguez wrote: > Excuse me if this is more my ineptitude with IB than a pyobjc > question: > > Using Obj-C, when I change a class definition in IB by adding an > outlet or an action, I can use the "Read Files" option to find the > changes in the instance which I have wired up to my view. In PyObjc > this is not an option. > > the way I'm understanding it now (and correct me if I am wrong), I > have to re-instatiate and re-wire everytime I find that I forgot that > I needed an extra outlet or action. Is that correct or am I missing > something? I seem to remember that it was the same with the java > bridge which was a real show stopper for those of us constantly > tweaking our apps. If you subclass from AppKit.NibClassBuilder.AutoBaseClass, all your outlets are created automatically from the nib. Most examples in the Examples sudirectory use it. You need to call AppKit.NibClassBuilder.extractClasses() with your nib's name before you can use AutoBaseClass. Regarding actions: you have to write them yourself anyway, so I'm not even sure how PyObjC could help you there. Just |
From: Just v. R. <ju...@le...> - 2003-03-22 19:13:55
|
Just van Rossum wrote: > If you subclass from AppKit.NibClassBuilder.AutoBaseClass [ ... ] Btw. NibClassBuilder.py is also a candidate to move to PyObjCTools. Just |
From: Ronald O. <ous...@ci...> - 2003-03-22 19:19:43
|
On Saturday, Mar 22, 2003, at 19:07 Europe/Amsterdam, Antonio Rodriguez wrote: > Excuse me if this is more my ineptitude with IB than a pyobjc question: > > Using Obj-C, when I change a class definition in IB by adding an > outlet or an action, I can use the "Read Files" option to find the > changes in the instance which I have wired up to my view. In PyObjc > this is not an option. > > the way I'm understanding it now (and correct me if I am wrong), I > have to re-instatiate and re-wire everytime I find that I forgot that > I needed an extra outlet or action. Is that correct or am I missing > something? I seem to remember that it was the same with the java > bridge which was a real show stopper for those of us constantly > tweaking our apps. If I understand you correctly you seem to assume that you have to recreate your model objects in the NIB everytime you want to change the python class for the model. That is not true, the class definition in IB is a different beast than the one in you python script. What I usually do is: - Paint a UI in Interface Builder, including the initial definition of one or more model classes/objects. - Generate a template using AppKit.NibClassBuilder (used a script) - Fill in the template. If the model interface changes later on I change the definition in IB and update the python files. There is no need to rewire anything in IB. Ronald |
From: Jack J. <Jac...@or...> - 2003-03-23 21:00:40
|
On zaterdag, maa 22, 2003, at 19:48 Europe/Amsterdam, Ronald Oussoren wrote: > What I usually do is: > - Paint a UI in Interface Builder, including the initial definition of > one or > more model classes/objects. > - Generate a template using AppKit.NibClassBuilder (used a script) > - Fill in the template. > > If the model interface changes later on I change the definition in IB > and update the python files. There is no need to rewire anything in > IB. This procedure needs to be documented. and probably in a step-by-step way. It is essential to PyObjC development, but it is also pretty obscure. Even more obscure than the corresponding ObjC procedure (which you also will never find if you don't do one of Apple's examples). -- - Jack Jansen <Jac...@or...> http://www.cwi.nl/~jack - - If I can't dance I don't want to be part of your revolution -- Emma Goldman - |
From: Ronald O. <ous...@ci...> - 2003-03-24 06:48:49
|
On Sunday, Mar 23, 2003, at 22:00 Europe/Amsterdam, Jack Jansen wrote: > > On zaterdag, maa 22, 2003, at 19:48 Europe/Amsterdam, Ronald Oussoren > wrote: >> What I usually do is: >> - Paint a UI in Interface Builder, including the initial definition >> of one or >> more model classes/objects. >> - Generate a template using AppKit.NibClassBuilder (used a script) >> - Fill in the template. >> >> If the model interface changes later on I change the definition in IB >> and update the python files. There is no need to rewire anything in > >> IB. > > This procedure needs to be documented. and probably in a step-by-step > way. It is essential to PyObjC > development, but it is also pretty obscure. Even more obscure than the > corresponding ObjC procedure > (which you also will never find if you don't do one of Apple's > examples). Thanks for the tip. It is pretty obvious to me, hence the lack of documentation. I'm sure there are more features/procedures that are obvious for someone familiar with PyObjC but not for a newby. Please keep us informed of them. "There are no dumb questions, only lacking documentation" Ronald |
From: Jack J. <Jac...@cw...> - 2003-03-24 11:54:41
|
On Monday, Mar 24, 2003, at 07:47 Europe/Amsterdam, Ronald Oussoren wrote: > > On Sunday, Mar 23, 2003, at 22:00 Europe/Amsterdam, Jack Jansen wrote: > >> >> On zaterdag, maa 22, 2003, at 19:48 Europe/Amsterdam, Ronald Oussoren >> wrote: >>> What I usually do is: >>> - Paint a UI in Interface Builder, including the initial definition >>> of one or >>> more model classes/objects. >>> - Generate a template using AppKit.NibClassBuilder (used a script) >>> - Fill in the template. >>> >>> If the model interface changes later on I change the definition in >>> IB and update the python files. There is no need to rewire anything >>> in > IB. >> >> This procedure needs to be documented. and probably in a step-by-step >> way. It is essential to PyObjC >> development, but it is also pretty obscure. Even more obscure than >> the corresponding ObjC procedure >> (which you also will never find if you don't do one of Apple's >> examples). > > Thanks for the tip. It is pretty obvious to me, hence the lack of > documentation. I'm sure there are more features/procedures that are > obvious for someone familiar with PyObjC but not for a newby. I think I may have some time on my hands today, and it's been long enough ago that I did something from scratch with PyObjC that I may be a reasonable guinea-pig. I'll give the Apple Cocoa introduction a go (in Python, of course) and I'll keep notes. > -- Jack Jansen, <Jac...@cw...>, http://www.cwi.nl/~jack If I can't dance I don't want to be part of your revolution -- Emma Goldman |
From: Antonio R. <an...@me...> - 2003-03-24 16:11:03
|
Here was the key to my original question (and looking at it, I think it may be more an IB question than a PyObjC question): I thought that once one uses IB to "define" a class (pick the parent class and add outlets and actions) and subsequently to instantiate a class into an instance that goes into that palette window, the only way to add more outlets/actions after the instance has been wired was to delete the instance, add the outlets/actions to the class definition and then re-instantiate and re-wire it. However, it seems as though all one needs to do is to switch over the class definition and add the actions/outlets as appropriate. After that, when ctr-clicking to/from the instance, the new actions/outlets of the class definition will appear. Hope this helps anyone reading this thread. I wholeheartedly agree with Jack's point. PyObjC is true magic on the scale of pixie dust but right now there are just too many hurdles to get through unless one is really family with the cocoa way of doing things. I've found that the PyObjC examples help a ton, especially the "WebServices Tool" one which is the closest to being a real app. Perhaps one thing to do is to have others who have created 'real' apps submit them to be included in the examples dir? Thanks to all who answered. Antonio On Monday, March 24, 2003, at 01:47 AM, Ronald Oussoren wrote: > > On Sunday, Mar 23, 2003, at 22:00 Europe/Amsterdam, Jack Jansen wrote: > >> >> On zaterdag, maa 22, 2003, at 19:48 Europe/Amsterdam, Ronald Oussoren >> wrote: >>> What I usually do is: >>> - Paint a UI in Interface Builder, including the initial definition >>> of one or >>> more model classes/objects. >>> - Generate a template using AppKit.NibClassBuilder (used a script) >>> - Fill in the template. >>> >>> If the model interface changes later on I change the definition in >>> IB and update the python files. There is no need to rewire anything >>> in > IB. >> >> This procedure needs to be documented. and probably in a step-by-step >> way. It is essential to PyObjC >> development, but it is also pretty obscure. Even more obscure than >> the corresponding ObjC procedure >> (which you also will never find if you don't do one of Apple's >> examples). > > Thanks for the tip. It is pretty obvious to me, hence the lack of > documentation. I'm sure there are more features/procedures that are > obvious for someone familiar with PyObjC but not for a newby. Please > keep us informed of them. "There are no dumb questions, only lacking > documentation" > > Ronald > > |
From: Ronald O. <ous...@ci...> - 2003-03-24 16:26:00
|
On Monday, Mar 24, 2003, at 11:27 Europe/Amsterdam, Antonio Rodriguez wrote: > > Hope this helps anyone reading this thread. I wholeheartedly agree > with Jack's point. PyObjC is true magic on the scale of pixie dust but > right now there are just too many hurdles to get through unless one is > really family with the cocoa way of doing things. I've found that the > PyObjC examples help a ton, especially the "WebServices Tool" one > which is the closest to being a real app. Perhaps one thing to do is > to have others who have created 'real' apps submit them to be included > in the examples dir? > Adding more real applications would be usefull, but I think it would be more usefull to add those as separate downloads and/or links to other projects. You must pass a number of hurdles before being able to fully use the bridge, but in my experience those are mostly Cocoa hurdles in general. I am of course slightly biased :-). Ronald |
From: Jack J. <Jac...@cw...> - 2003-03-24 16:18:50
Attachments:
pyobjc-currencyconverter-stepbystep.tgz
|
Okay, I did a straw-man of a step-by-step tutorial: |
From: <bb...@ma...> - 2003-03-24 16:34:50
|
On Monday, Mar 24, 2003, at 11:19 US/Eastern, Jack Jansen wrote: > 2. Decide on how to format it: plain text or html, one file with > step numbers or a number of linked files, how to organize the files > that I've now simply dumped into "src-afterstep6" and such, etc. Restructured text -- that way, we can generate HTML, plain text, LaTeX and PDF from the ReST source. ReST is really easy to write and the raw "source" is very readable. We already have a bunch of ReST source in the repository. I'll *try* to find some time to contribute to this. Life has been rather, uh, hellish recently. I'm currently mired deep in a Cocoa/Java project. It definitely makes one appreciate the simple elegance of Cocoa/Python. b.bum |
From: Richard C. <sun...@ma...> - 2003-03-28 13:03:08
|
Hello Folks, There was mention of a 0.9 pkg at the end of March. Is that still the plan? If not I'll bite the bullet and download from CVS, but I was rather hoping for a nice convenient pkg. Thanks a lot, Richard |
From: Ronald O. <ous...@ci...> - 2003-03-29 15:36:29
|
On Friday, Mar 28, 2003, at 14:03 Europe/Amsterdam, Richard Chamberlain wrote: > Hello Folks, > > There was mention of a 0.9 pkg at the end of March. Is that still the > plan? Yes, although it will probably early April. Ronald |