كيف أقوم بإنشاء إشارة جديدة في pygtk
سؤال
لقد قمت بإنشاء كائن بيثون، ولكن أريد إرسال إشارات عليه.لقد جعلته يرث من 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')
لا تنتمي إلى StackOverflow