كيفية عمل اختصار عام يعمل من خارج نافذة البرنامج
بسم الله الرحمن الرحيم.
حياكم الله قُراء هذا الموضوع، ونرجو أن تستفيدوا منه.
كيف نعمل اختصار يعمل من خارج نافذة البرنامج حتى لو كانت نافذة البرنامج غير ظاهرة؟
1 نقوم بتشغيل دالة RegisterHotKey، وهذه الدالة تحوي في معاملاتها رقم ID الاختصار، ومفاتيح الاختصار التي ستنفذ أمر معين عند الضغط عليها.
مثال:
self.RegisterHotKey(4, wx.MOD_CONTROL|wx.MOD_SHIFT, ord('S'))
أول معامل وهو 4 يُمثل رقم ID
المعامل الثاني نكتب فيه الاختصار المُراد هكذا:
wx.MOD_CONTROL وهذا مسؤول عن إضافة الكنترول أو الشفت أو الألت، وكما لاحظنا نفصل بينه وبين المفتاح المراد بعلامة الخط السفلي _،
ويمكننا كتابة زر واحد أو أكثر بالفصل بينهم بعلامة الشريط |
المعامل الثالث وإما أن يكون حرف أو مفتاح عادي كالإنتر أو مفاتيح الوظائف فنكتبه بالطريقة المعتادة.
wx.WXK_f1 مثلا أو ord('D')
وإذا كان حرف ننتبه ليكون مكتوبا كبيرا وليس صغيرا.
2 دالة الحدث التي سنربطها بالأمر الذي نريده:
self.Bind(wx.EVT_HOTKEY, self.onHotKey, id=4)
وهنا نلاحظ أننا كتبنا رقم ID في المعامل الأخير للدالة.
3 الدالة التي سنكتب فيها ما نريد تنفيذه، طبعا هذه دالة خارج دالة البِناء.
مثال:
نريد أن نظهر نافذة البرنامج إن كانت مختفية أو ننقل لها التركيز إذا كانت ظاهرة:
def onHotKey (self, event):
if self.IsShown():
self.Raise()
#أي إذا كانت ظاهرة اجعلها في المقدِمة.
else:
self.Raise()
self.Show()
#أما إذا كانت غير ذلك أي غير ظاهرة أظهرها واجعلها في المقدمة.
هذا وبالله التوفيق.
لا تنسَ ذكر الله.
رائع جداً هذه طريقة ثانية إلى جانب الطريقة الأولى التي نعرفها مسبقاً
ردحذفلكن برأيكم ما الفرق بين الطريقتين