كيف يمكنني ربط ضغط) إشارة (32 أزرار إلى وظيفة واحدة دون اعلان 32 فتحات؟

StackOverflow https://stackoverflow.com/questions/1801167

  •  05-07-2019
  •  | 
  •  

سؤال

ولدي القطعة وداخله على 32 أزرار. لست بحاجة للاتصال ضغط () إشارة كل زر على فتحة من أجل استدعاء دالة منظمة الصحة العالمية المعلمات تعتمد على أي زر لقد الضغط عليه. الآن أنا فعلت ذلك بإضافة 32 فتحات على شكل on_QPushButtonName_pressed () ولكن ذلك الكثير من فتحات. أنا أتساءل عما اذا كان هناك طريقة أخرى يمكن أن أفعله أن أصغر. لقد فعلت شيئا من هذا القبيل ولكن كنت أعمل مع العرف الحاجيات حتى أتمكن من مجرد إنشاء إشارة جديدة في قانون صفي ولكن أود أن تجنب خلق أداة مخصصة للتو على زر واحد.

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

المحلول

استخدم الطبقة QSignalMapper. وثائق - http://doc.qt.io/qt-5/qsignalmapper.html - يوجد مثال قريب جدا إلى ما تريد

.

نصائح أخرى

وهناك احتمال آخر: خلق فتحة واحدة فقط، واصفا sender() والتبديل على نتيجة

وكما ذكر روهان، QSignalMapper هو الحل الموصى بها، لأن مرسل () وقليلا من الإختراق. ميزته هو أنه أسهل للاستخدام.

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