On 03/08/2009, at 5:37 PM, Greg Ewing wrote:
> Richard Jones wrote:
>> Here's
>> a little random thought that I freely license anyone currently
>> developing a GUI to run with
>>
>> gui = withgui.Window()
>> with gui.vertical:
>>   gui.label('My awesome GUI', halign=gui.CENTER)
>>   with gui.form:
>>     gui.label('Name')
>>     gui.text()
>
> That looks quite nifty! I'll tuck it away somewhere in case
> I find a use for it in PyGUI!

Cool. For what it's worth, the following is now implemented (using  
Tkinter) with some slight changes to the proposed API:

with gui.vertical:
   gui.label('My awesome GUI', halign=CENTER)
   with gui.form as form:
     gui.label('Name')
     name = gui.text()
     gui.help('Enter the name of your character in the game')
     gui.label('Skill level')
     skill = gui.selection(['Awesome', 'Radical', 'Understated'])
     gui.help('''This selection will determine the level of challenge
         in the game''')
     with gui.submit('Go!'):
         def on_click():
             print 'GOT %r'%name.value
             print 'GOT %r'%skill.value
             gui.stop(0)
     with gui.cancel('No stop!'):
         def on_click():
             gui.stop(1)

... this is runnable with "withgui example.py". What's not apparent up  
there is that I can access the named widgets and other things. So,  
gui['form']['name'] is the name text widget and gui['form']['.text']  
is all the text widgets and gui['form'][1] is the selection widget  
(note the top-level widget is skipped in that 'cos there's only one  
and you can get it through gui.child).

The simplest example is:

    gui.label('Hello, world!')

or:

     with gui.button('press me!'):
         def on_click(*args):
             print 'hello, world!'

... which both do the obvious things :)

Note that my originally proposed "gui.cancel('No stop!').on_click"  
results in a syntax error. It's a shame we can't "def  
submit.on_click" :(

I'm trying to think of more complex examples that would make this  
approach not be viable. Can't tho.

I'll release this code tomorrow when I've got a Google Code project  
set up. It needs a name tho.



      Richard


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to