[wingide-users] Perplexed

Bob Hendry bobh at hendry.net
Sun Jun 27 16:34:46 MDT 2010


Works on Linux Redhat platform.

Try debugging it

On Mon, 28 Jun 2010, Brian Rowlands (Greymouth High School) wrote:
> Hi Folks
> New to both Wing IDE and Python and busily trying to get my head around
> threads when I tried a simple example off the WWW.
>
> It falls over in Wing IDE but the author assures me it works fine when
> he tested it after I wrote to him. He had someone else test it and it
> worked too on a windows platform ( which is what I'm using).
>
> Wind IDE Personal doesn't report any errors.
>
> Am I allowed to ask if someone could test it via their IDE and let me
> know the results please?
>
> If so, code is shown below.
>
> Thanks
>
> Brian
>
> #!/usr/bin/env python
> #-*- coding:utf-8 -*-
> # By Chris Oliver <chris at excid3.com>
> # Adapted from
> http://www.pygtk.org/pygtk2tutorial/examples/helloworld.py
>
>
> import pygtk
> pygtk.require("2.0")
>
> import gobject
> import gtk
> gtk.gdk.threads_init()
>
> import threading
>
>
> class HelloWorld:
>     def __init__(self):
>         """
>             Initializes the GTK application, in our case, create the
> window
>             and other widgets
>         """
>
>         # Create a window
>         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
>         self.window.set_border_width(10)
>
>         # Setup the application to exit GTK when the window is closed
>         self.window.connect("destroy", self.destroy)
>
>         # Create a button
>         self.button = gtk.Button("Hello World")
>
>         # Make the button call self.hello() when it is clicked
>         self.button.connect("clicked", self.hello_helper)
>
>         # Add the button into the window
>         self.window.add(self.button)
>
>         # Display the button and the window
>         self.button.show()
>         self.window.show()
>
>
>     def hello(self, widget, data=None):
>         import time
>         time.sleep(25)
>         print "Hello"
>
>
>     def hello_helper(self, widget, data=None):
>         print "starting new thread"
>         threading.Thread(target=self.hello, args=(widget, data)).start()
>
>     def main(self):
>         """
>             This function starts GTK drawing the GUI and responding to
> events
>             like button clicks
>         """
>
>         gtk.main()
>
>
>     def destroy(self, widget, data=None):
>         """
>             This function exits the application when the window is
> closed.
>             Without this the GTK main thread would continue running
> while no
>             interface would be displayed. We want the application to
> exit when
>             the window is closed, so we tell the GTK loop to stop so we
> can
>             quit.
>         """
>
>         gtk.main_quit()
>
>
> if __name__ == "__main__":
>     # Create an instance of our GTK application
>     app = HelloWorld()
>     app.main()




More information about the wingide-users mailing list