هل يمكن للوحتين مشاركة التحكم في واجهة المستخدم الرسومية في MATLAB GUI؟

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

سؤال

لدي واجهة مستخدم رسومية MATLAB تحتوي على جوانب مختلفة من الوظائف، ولكل منها لوحة تحكم خاصة به.عند تحديد إحدى اللوحات، يتم تعيين اللوحة الأخرى على أنها غير مرئية، والعكس صحيح.ومع ذلك، فإنها تشترك في بعض المدخلات نفسها في شكل قائمة منبثقة.هل يمكنني تضمين مثيل "استنساخ" للقائمة في اللوحة الثانية بطريقة ما؟أرغب في تجنب أكبر عدد ممكن من عمليات الاسترجاعات وعناصر تحكم واجهة المستخدم الزائدة عن الحاجة.

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

المحلول

أعتقد أنه إذا كان uicontrol تابعًا مباشرًا لهذا الشكل، فقد تتمكن من وضعه أمام كل شيء.

الحل الأبسط بكثير هو استخدام نفس رد الاتصال لعناصر تحكم متعددة في واجهة المستخدم.في محرر الخصائص، يمكنك تعديل اسم رد الاتصال وتعيينه إلى وظيفة رد اتصال شائعة.بالإضافة إلى ذلك، يمكنك إنشاء حقل (على سبيل المثال. myPopupH) في ال OpeningFcn لواجهة المستخدم الرسومية، حيث تقوم بتخزين مقابض النوافذ المنبثقة التي يجب أن تتصرف بنفس الطريقة.وبعد ذلك، في رد الاتصال، ستستخدم hObject, ، أي.وسيطة الإدخال الأولى، لجميع get المكالمات (للوصول إلى الحالة المعدلة للقائمة المنبثقة)، لكنك ستستخدمها handles.myPopupH في كل set المكالمات، بحيث يمكنك التأكد من أن كلا النافذتين المنبثقتين لهما نفس الحالة دائمًا.وبالتالي، قد يكون كائن واجهة المستخدم زائدًا عن الحاجة، لكن كل التعليمات البرمجية (وهو الأمر الأكثر أهمية) موجودة فقط في نسخة واحدة.

أحد الأماكن التي أستخدم فيها رد اتصال واحد بشكل روتيني لعناصر واجهة مستخدم متعددة هو وظيفة طلب الإغلاق التي يمكن الوصول إليها من زر "إلغاء" وكذلك من "X" الذي يغلق الشكل، وربما من أحد "الملف" -عناصر القائمة.

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