2008-09-15 14 views
7

में एक नया सिग्नल कैसे बना सकता हूं मैंने एक पायथन ऑब्जेक्ट बनाया है, लेकिन मैं इसके पर सिग्नल भेजना चाहता हूं। मैंने इसे gobject.GObject से प्राप्त किया है, लेकिन मेरे ऑब्जेक्ट पर नया सिग्नल बनाने का कोई तरीका नहीं प्रतीत होता है।मैं pygtk

import gobject 

class MyGObjectClass(gobject.GObject): 
    ... 

gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST, 
    None, (str, int)) 

कहाँ अंतिम तर्क से पीछे नहीं वापसी प्रकार और अंतिम तर्क है तर्क प्रकार के एक टपल है:

उत्तर

11

तुम भी वर्ग परिभाषा के अंदर संकेतों को परिभाषित कर सकते हैं:

class MyGObjectClass(gobject.GObject): 
    __gsignals__ = { 
     "some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (object,)), 
    } 

टपल की सामग्री gobject.signal_new करने के लिए तीन पिछले तर्क के रूप में ही कर रहे हैं।

4

यहाँ कैसे है।

2

आप उपलब्ध कीवी here का उपयोग करते हैं तो आप सिर्फ कर सकते हैं:

from kiwi.utils import gsignal 

class MyObject(gobject.GObject): 
    gsignal('signal-name') 
संबंधित मुद्दे