How do I create a new signal in pygtk

后端 未结 3 868
走了就别回头了
走了就别回头了 2021-02-09 10:26

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 obje

相关标签:
3条回答
  • 2021-02-09 10:36

    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.

    0 讨论(0)
  • 2021-02-09 10:40

    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.

    0 讨论(0)
  • 2021-02-09 10:41

    If you use kiwi available here you can just do:

    from kiwi.utils import gsignal
    
    class MyObject(gobject.GObject):
        gsignal('signal-name')
    
    0 讨论(0)
提交回复
热议问题