سؤال

لقد قمت بإنشاء كائن بيثون، ولكن أريد إرسال إشارات عليه.لقد جعلته يرث من gobject.GObject، ولكن لا يبدو أن هناك أي طريقة لإنشاء إشارة جديدة على الكائن الخاص بي.

هل كانت مفيدة؟

المحلول

يمكنك أيضًا تحديد الإشارات داخل تعريف الفئة:

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

محتويات الصف هي نفس الوسائط الثلاثة الأخيرة gobject.signal_new.

نصائح أخرى

هنا هو كيف:

import gobject

class MyGObjectClass(gobject.GObject):
    ...

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

حيث تكون الوسيطة من الثانية إلى الأخيرة هي نوع الإرجاع والوسيطة الأخيرة عبارة عن مجموعة من أنواع الوسائط.

إذا كنت تستخدم الكيوي المتاحة هنا يمكنك فقط القيام بما يلي:

from kiwi.utils import gsignal

class MyObject(gobject.GObject):
    gsignal('signal-name')
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top