I've created a python object, but I want to send signals on it. I made it inherit from gobject.GObject, but there doesn't seem to be any way to create a new signal on my object.
+2
A:
Here is how:
import gobject
class MyGObjectClass(gobject.GObject):
...
gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST,
None, (str, int))
Where the second to last argument is the return type and the last argument is a tuple of argument types.
Sebastian Rittau
2008-09-15 20:57:10
+4
A:
You can also define signals inside the class definition:
class MyGObjectClass(gobject.GObject):
__gsignals__ = {
"some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (object, )),
}
The contents of the tuple are the the same as the three last arguments to gobject.signal_new
.
Torsten Marek
2008-09-15 22:52:27
+2
A:
If you use kiwi available here you can just do:
from kiwi.utils import gsignal
class MyObject(gobject.GObject):
gsignal('signal-name')
Johan Dahlin
2008-09-24 10:14:06