Pmw.Balloon under Windows

Eric Brunel eric_brunel at despammed.com
Thu Feb 17 04:27:30 EST 2005


On 16 Feb 2005 10:51:27 -0800, Aki Niimura <akineko at pacbell.net> wrote:
[snip]
> The software is working fine under Solaris 9.
> However, when I tried it under Windows, it worked also fine but it spit
> out
> the following error message when exiting.
>
> (from cygwin terminal)
>
> % c:/Python23/python my_app.py
>
> This application has requested the Runtime to terminate it in an
> unusual way.
> Please contact the application's support team for more information.
>
> (the same error message is observed when I run the program directly in
> Windows XP environment.)
> //
[snip]
> After painful investigation, I found Pmw.Balloon was causing this
> problem
> (because the problem went away if I commented out all balloon
> statements).
>
> Then I compared my usages and Pmw Balloon example because the example
> didn't
> cause this. (http://pmw.sourceforge.net/doc/Balloon.html)

I used the Pmw.Balloon quite a lot and never see any problem.

One question: what Python do you use? Is it a regular Windows Python distribution or the Python delivered with Cygwin? I know by experience that the Python in Cygwin has quite a lot of problems (mine crashes *very* often). If you don't already use a "regular" Windows distro, I think using one may solve your problem.

> My questions are:
> (1) Why my program is complaining and is there any workaround?
>
> (2) What is the difference between using widget quit() method
> and using Windows 'X' button.
> - I know clicking Windows 'X' button generates an event but I thought
> - ultimately it reached to the same routine to terminate the program.

I think the default binding for the 'X' button is to call destroy, not quit. Calling destroy on the main window is almost equivalent to calling quit, so maybe it can be a solution?

> (3) Is it possible to fake clicking 'X' button?
> I see a widget has event_generate() method.

Not that I know of. The event_generate method won't help here, because the 'X' button is handled by the window manager, and not by the application. It's a bit more complicated on Windows (as usual...) since there is no "real" window manager, but from the tk/Tkinter point of view, the result is the same: you can't "fake" a window manager event using event_generate.


BTW, what are the versions of Python, tk and Pmw you're using?

HTH a little...
  - Eric Brunel -



More information about the Python-list mailing list