المعادل البرمجي لإجراء قائمة "نسخ الشكل".
-
21-12-2019 - |
سؤال
أقوم بتطوير تطبيق Matlab GUI الذي يرسم شكلاً يحتوي على عناصر واجهة مستخدم إضافية في نافذة واجهة المستخدم الرسومية.أرغب في إضافة إجراء قائمة إلى قائمة نافذة واجهة المستخدم الرسومية التي تكرر تمامًا إدخال "تحرير | نسخ الشكل" الخاص بقائمة نافذة الشكل القياسية، بحيث تكون خيارات نسخ الشكل "تحافظ على المعلومات" و"فرض خلفية بيضاء" و"مطابقة الشكل" يمكن تطبيق حجم الشاشة.
لا أحد يعرف كيفية القيام بذلك؟
شكرًا!
تحرير لإضافة ما نجح
بدلاً من محاولة نسخ/تعديل/لصق الكود في معالج قائمة نافذة الشكل، قمت باستدعائه للتو من وظيفة قائمة واجهة المستخدم الرسومية
% --------------------------------------------------------------------
function CopyFigureMenuItem_Callback(hObject, eventdata, handles)
% hObject handle to CopyFigureMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
editmenufcn(handles.figure1, 'EditCopyFigure');
من المؤكد تقريبًا أنه ليس مقاومًا للمستقبل، وليس مضمونًا للعمل في أي إصدار مستقبلي، ولكن في R2014a يفعل ما أريد!
المحلول
يكتب
>>edit editmenufcn
في موجه أوامر Matlab لرؤية كافة الاستدعاءات البرمجية لقائمة التحرير.من الواضح أن ما تبحث عنه هو:
editmenufcn(hFigure, 'EditCopyFigure');
بالطبع، hFigure
يجب أن يكون مقبض الشكل الذي تريد نسخه.
تحرير في وقت لاحق
قد يمنحك إلقاء نظرة خاطفة على الكود تلميحات لتنفيذ وظائف أكثر دقة.جسم الوظيفة ضخم switch
إفادة؛البحث عن 'EditCopyFigure'
ستمنحك السلسلة مقتطف الشفرة الذي يهمك.احرص على عدم تعديل هذه الوظيفة أو حفظ التغييرات.:-)
ومع ذلك، هذه الوظيفة غير موثقة وقد يتم تغييرها/إزالتها في الإصدارات اللاحقة.آمل أن لا يزعجك هذا.
حتى في وقت لاحق تحرير
والظاهر أن ما ورد أعلاه ليس هو الجواب على السؤال.الجواب سيكون "نعم، هناك على الأقل شخص يعرف كيفية القيام بذلك." :-)