بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
بعض الشرح عن ال Signals في Gtk .
قبل البدأ الأفضل الإطلاع على هذا الموضوع https://arfedora.blogspot.com/2017/03/pygobject-gtk.html
لنبدأ :
1-دالة print_hello لطباعة كلمة hello .
2-قمت بإنشاء button أي زر يمكن الضغط علبه لاكني هنا لم أعرضه فقط أريد أن أشرح شيء, في الصورة التالية سأقوم بعرض نافذة البرنامج والزر button .
3-من خلال دالة connect قمت بربط دالة print_hello بإشارة (signal) خاصة بالأزرار إسمها clicked بشكل بسيط عندما تقوم هذه الbutton بإصدار (emit) إشارة إسمها clicked سيتم تنفيذ دالة print_hello .
4-نلاحظ عند إصدار إشارة clicked تم تنفيذ دالة print_hello .
الأن ذات المبدأ لاكن هنا لم أنفذ دالة emit بشكل يدوي لاكن الامر تم بشكل تلقائي عند الضغط على الزر Click Here عندها يحدث حدث معين (event) يقوم بإصدار إشارة clicked .
الأن كيف حصلت على هذه المعلومات ومن حددها هكذا ؟ الجواب هذه أشياء محددة من قبل القائميين على Gtk وهذه المعلومات متوفرة في والوثائق الرسمية للمكتبة .
ملاحظة غالبا إسم الإشارة يدل أيضا على إسم الحدث الذي يصدرها أظن واضح معنى كلمة clicked أي نقر.
ممكن بشكل مؤقت عمل block للإشارة من خلال handler_block .
ممكن عكس دالة connect من خلال دالة disconnect .
ممكن إستعراض كل الإشارات المتوفرة لعنصر ما مثلا الأزرار button ,طبعا كل هذا مذكور أيضا في الوثائق الرسمبة .
أخيرا مفهوم ال signal و ال event لا يقتصر فقط على بايثون أو على Gtk او على المكتبات الرسومية فهو مفهوم أوسع بكثير لاكني في هذا الموصوع تكلمت بشكل بسيط ومحدد وليس كل شيء عن Gtk و بايثون .
رابط مفيد https://pygobject.readthedocs.io/en/latest/index.html
أضحى مبارك كل عام وأنتم بخير إن شاء الله .
أضحى مبارك كل عام وأنتم بخير إن شاء الله .