سؤال

أنا عالق في منتصف هذه المشكلة لمدة أسبوع أو نحو ذلك الآن ، وجدت سؤالًا مشابهًا تم نشره على QT لمنتدى Symbian ، لكن لم يجيب عليها أي شخص.

المشكلة هي ببساطة أنه عندما أقوم بتشغيل التطبيق ، حسنًا ، لا يزال هناك تطبيق أولي :) ، إما على المحاكي أو على جهاز حقيقي ، واستخدم لوحة مفاتيح QWERTY الفعلية لكتابة الأحرف العادية ، في هذه الحالة الجهاز في اتجاه المناظر الطبيعية ، لا يتم استدعاء وظيفة المفاتيح ، ولكن يطلق عليها إذا قمت بالضغط على مفاتيح مثل Enter و Backspace والسهام المختلفة ومفتاح الإجراء. كما يحدث هذا إذا قمت بتشغيل التطبيق على المحاكي واستخدمت لوحة مفاتيح جهاز التطوير للكتابة.

من ناحية أخرى ، إذا استخدمت لوحة مفاتيح Qwerty Mini Qwerty على الشاشة ، أو استخدمت لوحة مفاتيح جهاز التطوير للكتابة والمحاكي في اتجاه الصورة ، يتم استدعاء وظيفة keypressevent.

الآن لكي أكون أكثر تحديداً ، لدي فئة ترث من QtextedIt ، لقد تجاوزت الوظائف Keypressevent و FocusInevent داخله ، كما أسمي الوظيفة setFocusPolicy داخل مُنشئ الفصل ، ولكن لا شيء يبدو أنه يحل المشكلة.

يجب أن أقول أيضًا أن الكود الذي أحاوله هو إصدار معدّل من مثال CustomCompleter ، ووجدت أن هذه المشكلة تحدث أيضًا مع الكود الأصلي.

لذا يا رفاق ، أي شخص لديه أي فكرة عن كيفية حل هذه المشكلة؟

يعتبر.

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

المحلول

يمكنك التحقق keyReleaseEvent و/أو مراقبة جميع الأحداث عن طريق تجاوز event(QEvent*) والتحقق بالضبط من الأحداث التي يتم إنشاؤها بالفعل. قد يتم إنشاء حدث مناسب مختلف.

ومع ذلك ، فإن السلوك الذي وصفته يبدو حقًا وكأنه خطأ بالنسبة لي. يمكنك التحقق من QT تعقب الأخطاء و/أو تقديم تقرير خطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top