Enthought python - Traits

A

Ash

Hello everyone !

I am trying to find some sort of a cookbook or more examples for using
Enthought Traits to build GUI's. I tried to follow the documentations
present at the enthought site, but couldnt get too far - especially on
how to handle a control event ?

Also while i am on the topic:

say i have a list "control" that create using the following two lines:

class Project(HasTraits):
coordinate_system=Enum('Cartesian','Cylindrical')

I added the following line to get the option selected by the user:

def _coordinate_system_changed(self,old,new):
print 'System changed from %s to %s ' %(old,new)

but it does not return what the user select. It should return either 0
or 1 based on the two choices, but i can't seem to find a way to trap
that.
I am relatively new to this GUI programming in Python and really could
use some tips/hints.

Thanks,

-Ash
 
P

Peter Wang

Ash said:
Hello everyone !

I am trying to find some sort of a cookbook or more examples for using
Enthought Traits to build GUI's. I tried to follow the documentations
present at the enthought site, but couldnt get too far - especially on
how to handle a control event ?

The traits manual is in the lib/site-packages/enthought/traits/doc
directory, named Traits2_UM.doc/.pdf. The traits UI manual/user guide
is also in there. However, what is not so obvious is that there is
also an excellent, massive set of powerpoint slides (121 pages) that
Dave Morrill put together that talks about the architecture of Traits
UI, and how to build GUIs using it. (Er, how to build them *well*,
i.e. adhering to the M-V-C pattern and maximizing code reuse.) Those
slides are in traits_ui.ppt.
say i have a list "control" that create using the following two lines:

class Project(HasTraits):
coordinate_system=Enum('Cartesian','Cylindrical')

I added the following line to get the option selected by the user:

def _coordinate_system_changed(self,old,new):
print 'System changed from %s to %s ' %(old,new)

but it does not return what the user select. It should return either 0
or 1 based on the two choices, but i can't seem to find a way to trap
that.

The way that this works is that _coordinate_system_changed() gets
called with the old value and the new value of self.coordinate_system.
Thus, it doesn't "return" anything; your method is a "handler" method
that gets called when the value of a particular trait gets changed.

Why do you say it should return 0 or 1? Do you mean that you want to
get the index into the list of enumeration choices? The Enum trait
type is not quite like C in this regard. In C/C++, enums are really
ints; in traits, enums are lists of values of possibly mixed type.
I am relatively new to this GUI programming in Python and really could
use some tips/hints.

No problem, hope the above helped. You might want to email your
questions to (e-mail address removed) (and subscribe to it!). That
is the primary mailing list for several enthought libraries (including
traits) and you'll get very speedy, in-depth answers to your questions
there.


-Peter
 
A

Ash

Thanks Peter .. I will check out the mailing list. In the meanwhile - i
have made some progress. Now working out - how to get a button_fired
event to actually return the values ..

It's a process (as always..)

Cheers,

-A
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top