Re: [Pgu-devel] Help getting started
Status: Beta
Brought to you by:
philhassey
From: Jasper S. <jas...@gm...> - 2007-07-26 18:14:14
|
Great, you'll have it working soon enough! Indeed, if you don't set the _quit variable somewhere the loop never breaks. There are several options there. Since it looks like you made _quit a global variable, you could simply put _quit =3D 1 in the close() function of the dialog. Alternatively= , you could construct a quit event in the close() and send it. Then it'll automatically get picked up by the event loop which will set _quit. There are more complicated ways like periodically checking whether the dialog is still opened, but this seems less efficient than just using the close function options. Regards, Jasper On 7/25/07, Matthew Meredith <mat...@go...> wrote: > > Okay, so I think I am very nearly there ... (Many thanks for your help) > > I've changed to using "open" rather than "add". I've got round the fact > that it was then crashing (I had defined a timer event that was clashing > with a mouse event). And you were right, the only reason the dialog didn'= t > seem to be closing was because I wasn't overwriting the screen contents w= ith > anything. > > However, the reason that I am not overwriting with anything is because I > am not breaking out of my event loop when the dialog is closed. Should so= me > sort of event be generated when the dialog is closed that I can pick up i= n > my event loop? I don't believe an event is generated at the moment (I've > traced all events being received), but clearly there must be some way of > detecting when the dialog is closed? > > > On 7/23/07, Jasper Stolte <jas...@gm...> wrote: > > > > Hi, > > > > Unfortunately this code cant be compiled as is, so I cant test what I'm > > about to write. Hope it can help anyway. What happens if you take out t= he > > c.add() command, and put in a c.open() command? Then it should work, > > right? > > > > Maybe you need to do some extra cleanup, since it might be that the > > window actually does close, but is still on the screen since PGU has no= thing > > else to paint over it. Try and see if the colordialog close method is > > invoked, and work from there. > > > > Regards, > > Jasper > > > > > > On 7/21/07, mat...@be... < mat...@be... > wrote: > > > > > > Thanks. > > > > > > I've now got things partially working. I can display a dialog, but > > > not in > > > a way that I can close it! > > > > > > I've taken the ColorDialog from example 7 and combined with the code > > > from > > > example 10 as shown below. The ColorDialog displays correctly on top > > > of my > > > screen content, and the game blocks in the event loop shown > > > below. The > > > controls in the dialog work correctly except for the dialog close > > > control > > > (the red button top right) - clicking on this does nothing. > > > > > > I wondered if I needed to "open" the dialog instead of "add"ing it so > > > I > > > tried commenting out the c.add line and adding an app.open (as shown > > > hashed > > > out below). This didn't make any difference though except that after > > > a > > > while I hit an exception of some sort... > > > > > > Can anyone offer any further suggestions please? > > > > > > <main game loop> > > > ... > > > > > > #open modal dialog > > > > > > app =3D gui.App() > > > app.connect(gui.QUIT,app.quit,None) > > > dialog =3D ColorDialog('#000000') > > > > > > c =3D gui.Container(align=3D-1,valign=3D-1) > > > c.add(dialog,0,0) > > > > > > app.init(c) > > > #app.open(dialog,0,0) > > > _quit =3D 0 > > > while not _quit: > > > for e in pygame.event.get(): > > > if e.type is QUIT: _quit =3D 1 > > > if e.type is KEYDOWN and e.key =3D=3D K_ESCAPE: _quit =3D= 1 > > > app.event(e) > > > app.paint(screen) > > > pygame.display.flip() > > > pygame.time.wait(10) > > > > > > > > > From: Jasper Stolte [mailto: jas...@gm...] > > > Sent: 16 July 2007 12:36 > > > To: matandhelen > > > Cc: pgu...@li... > > > Subject: Re: [Pgu-devel] Help getting started > > > > > > > > > Hi, > > > > > > From your description I'm not really sure if it is the same problem I > > > had > > > earlier, but it very well could be. So here's what had me stumped for > > > hours > > > in a similar situation: If we have a class myDialog, which inherits > > > from > > > gui.Dialog, rather than doing something like (pseudocode) this: > > > > > > dialog =3D myDialog() > > > dialog.container =3D theContainer > > > dialog.open () > > > > > > I needed to do something like this: > > > > > > dialog =3D myDialog() > > > theContainer.open (dialog, x, y) > > > > > > Hopefully this can get you started from example 10. Also it's been a > > > while > > > since I did this, so things might've changed since then. > > > > > > Regards, > > > > > > Jasper > > > > > > > > > On 7/16/07, matandhelen < mat...@be...> wrote: > > > > > > Hi, > > > > > > I have a game written using pygame, and I would love to add a UI usin= g > > > PGU. > > > It looks like it should do exactly what I want, but despite being a > > > software > > > > > > engineer by trade, I just cannot get it to work (and I've been at it > > > for a > > > couple of days now!). > > > > > > All I want to do is add a really basic new game dialog when the game > > > finishes. I've got a pygame screen full of content, and all I want t= o > > > do is > > > > > > pop up a small modal dialog in the middle of it when the game ends, > > > collect > > > some values like number of players, and have an ok button that closes > > > the > > > dialog and relaunches the game. > > > > > > I've tried running, reading and adapting all of the examples. They > > > run fine > > > > > > if I don't change them, but as soon as I try to adapt them go > > > wrong. I've > > > tried starting from example 10, but I can't work out how to: > > > - launch a modal dialog (the colour picker doesn't "block") > > > - launch the dialog other than by connecting from another widget > > > - do the necessary GUI initialisation without having a widget on the > > > screen > > > all the time. > > > > > > I would include some sample code but I haven't really got any - I > > > don't even > > > > > > know where to start: do I create an app or a dialog or both? How do = I > > > get > > > the dialog to display, and how do I get it to display within an > > > exisiting > > > pygame screen? How do I open it in a way that blocks? I'm sure if I > > > knew > > > what I was doing it would only be a few lines of code... > > > > > > Can anyone help me? If I can get this working then I will be able to > > > release my game for everyone to enjoy! > > > > > > Cheers > > > > > > > > > > > > ---------------------------------------------------------------------= ---- > > > > > > This SF.net email is sponsored by DB2 Express > > > Download DB2 Express C - the FREE version of DB2 express and take > > > control of your XML. No limits. Just data. Click to get it now. > > > http://sourceforge.net/powerbar/db2/ > > > _______________________________________________ > > > Pgu-devel mailing list > > > Pgu...@li... > > > https://lists.sourceforge.net/lists/listinfo/pgu-devel > > > > > > > > > > > > > > > > > > -------------------------------------------------------------------- > > > mail2web LIVE =96 Free email based on Microsoft(r) Exchange technolog= y - > > > http://link.mail2web.com/LIVE > > > > > > > > > > > > |