GooeyPy - 0.2
A fast, flexible, and cool looking GUI for pygame.
GooeyPy is the result of my desire need for a flexible and easy to use gui for pygame. Yes, I realize there are already guis for pygame out there. But with each one there is something I don't like. GooeyPy simply has everything the way I like it. So I'm not going to say it's the best one out there, because everyone has their own opinions. Here are some things that are different about GooeyPy:
- I didn't like the way styling worked with other guis. Maybe I'm just spoiled by CSS in web development, but wouldn't it be nice if you could have CSS like styling for a gui? Oh woops, now you can! With GooeyPy, all widgets are stylable with CSS like attributes. Also, at any time during the application run time you can change the styling dynamically (and it will update itself)! All information related to displaying widgets are stored in the styling (that includes positioning; relative or absolute)
- With all the guis I've tried, you have to figure out how to integrate the gui into an already made game. Sometimes that's impossible. And if it is possible, until you figure out how the gui works, it's very hard to do. GooeyPy doesn't steal your pygame events and doesn't interfear with your bliting (well, actually it can. Setting up the surfaces can be a little hairy, but there is some nice documentation to explain it all).
- First of all, this isn't what you think. I'm not meaning other libs that GooeyPy depends on, but the dependencies within GooeyPy. Ok, that doesn't make a whole lot of sense... let me put it another way. You have a widget and all of the sudden you want to change the value. so you do widget.value = "hi". And it works! GooeyPy automatically knows when something changes that effects another part of itself. In this case, the value effects how the widget displays, so it will redraw itself. It works that way with everything! You never have to worry about redrawing a widget when it's dirty (and nither do I within GooeyPy, so that means a whole lot less bugs). All the dependencies are also cached.
- Another cool thing I have is you can link values from one widget to another. So if the value of widget a changes, so does the value it's linked to in widget b.
- I like the ability to have cool effects applied to my widgets. Now I have them.
If you would like to contact me regarding GooeyPy, please send me an email to web at joey101 net
* Removed app.py and util.py - there are no longer any global variables.
* It is now possible to have multiple top-level containers.
* Top-level container no longer has to be at (0,0) to properly receive events.
* You pass the surface to your top-level widgets that you want them to be drawn to.
* Widgets can be passed a theme name or path to a theme directory.
* Per-pixel transparency and automatic color key detections.
* Better unicode support.
* Bug fixes.