QT: احصل على اسم فئة كائن
-
27-09-2019 - |
سؤال
أنا أكتب تطبيق اختبار يحاكي مكابس المفاتيح لتطبيق آخر. لكل مفتاح اضغط ، يجب أن أتحقق مما إذا كانت النافذة/النموذج الصحيحة معروضة. إذن ما أقوم به هو الحصول على مؤشر النافذة التي يتم عرضها واحصل على عنوان نافذة. ومع ذلك ، ليس كل النوافذ/النماذج المعروضة عناوين النوافذ. لذلك أعتقد أنه سيكون من الأفضل الحصول على اسم الفصل بدلاً من ذلك. كيف يمكنني الحصول على اسم الفصل؟
QWidget *pWin = QApplication::activeWindow();
عندما أحاول:
pWin->className();
للحصول على اسم الفصل ، أحصل على:
"خطأ: فئة QWIDGET ليس لديها عضو يسمى" classname ""
هل يمكن لأي شخص أن يريني بالطريقة الصحيحة؟
المحلول
حاول استخدام metaObject.
pWin->metaObject()->className();
نصائح أخرى
يمكنك أيضا التحقق من رأس typeinfo. باستخدام مشغل typeid على كائنك ، تحصل على مثيل type_info الذي يصف نوع الكائن الخاص بك. الدفع: http://www.cplusplus.com/reference/std/typeinfo/type_info/