Hello,

        I have a very simple question which is stumping me.  I want to start
up PyGTK and then do some interaction with my business layer to do the work
I need so that I can display the data on my PyGTK app.  I'm setting up a
window and then calling gtk.main().  However when I do that everything else
freezes; I'm starting up an app and running something on a separate thread
in the background by gtk.main just stops running.  I've recreated the
problem in a simple use case below which is:

<code>
import pygtk
pygtk.require('2.0')
import gtk
import time
from threading import Thread

class W(Thread):
    def __init__(self):
        Thread.__init__(self)
        self.window = gtk.Window()

    def run(self):
        self.window.show()
        gtk.main()

class A(Thread):
    def __init__(self):
        Thread.__init__(self)
        self.count = 0

    def run(self):
        while True:
            print 'a', self.count
            self.count += 1

class B(Thread):
    def __init__(self):
        Thread.__init__(self)
        self.count = 0

    def run(self):
        while True:
            print 'b', self.count
            self.count += 1

if __name__ == '__main__':
    a = A()
    b = B()
    w = W()
    a.start()
    b.start()
    time.sleep(2)
    w.start()
    while True:
        time.sleep(0.1)
</code>

This starts up as you would expect, printing a and b to the screen as the
threading time time slicing allows. However once the PyGTK window has opened
- these threads just freeze.  I'm sure I cannot be the only person who deals
with this and it seems crazy to try and run everything on the GTK thread as
it would surely make the GUI unresponsive on operations which take a long
time?

  Note that I cannot trigger the app's business layer to start processing on
a button click as the app needs to interact with the business layer (a
camera capturing frames) from the word go and the application screen must be
very simple with no buttons to click at all (it is just used to report the
output from the camera after some frame processing).

  Thanks, in advance for your help.

Cheers,

Neil

-- 
-- 

Neil Benn Msc
Director
Ziath Ltd
Phone :+44 (0)7508 107942
Website - http://www.ziath.com

IMPORTANT NOTICE:  This message, including any attached documents, is
intended only for the use of the individual or entity to which it is
addressed, and may contain information that is privileged, confidential and
exempt from disclosure under applicable law.  If the reader of this message
is not the intended recipient, or the employee or agent responsible for
delivering the message to the intended recipient, you are hereby notified
that any dissemination, distribution or copying of this communication is
strictly prohibited. If you have received this communication in error,
please notify Ziath Ltd immediately by email at i...@ziath.com. Thank you.
_______________________________________________
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to