On Mon, 2010-11-15 at 12:21 +0100, MD or MD wrote: > Hi. > > I am a spanish programmer and I start with pyGtk. > > And I try to make a example that it is a simple window that blink a > button with two colours, for test events and threads. But I don't know > how to send custom event.
Calling GTK code from multiple threads will cause crashes. Don't do it without protection. There are many solutions to this problem, Google "pygtk threading" or see http://faq.pygtk.org/index.py?req=show&file=faq20.006.htp > > > def mThread(self): > while True: > print "Thread" > #self.emit('custom_event') > time.sleep(5) > This function runs in the thread you created. self.emit calls all signal handlers immediately, which results in code being executed from *this* thread, and not the main (gtk.main) one. This will cause crashes unless the advice given at the start is taken (i.e. idle_add emission, take the gdk lock, etc) Although the main problem is that you are trying to send a GObject signal, self.emit("signal"), but your object does not inherit from GObject. See __gsignals__ in here http://www.pygtk.org/articles/subclassing-gobject/sub-classing-gobject-in-python.htm And a threaded signal example here http://www.johnstowers.co.nz/blog/index.php/2007/03/12/threading-and-pygtk/ John > > > if __name__ == "__main__": > test = test() > test.main() > -------------------------------------------------------------------- > > Bye and thanks. > _______________________________________________ > pygtk mailing list [email protected] > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/ _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
