استيراد القيم من نافذة إلى أخرى في واجهة المستخدم الرسومية ماتلاب
-
21-12-2019 - |
سؤال
لنفترض أن لدي زر في نافذة عندما أنقر عليه ستظهر نافذة جديدة.أدعو هذه النافذة (مع اسم My_New_Window
) مع بناء الجملة هذا:
My_New_Window();
أريد إدراج بعض القيم في هذه النافذة الجديدة من النافذة الرئيسية.أعلم أنه يمكنني استخدام setappdata
أو getappdata
لهذا الغرض ولكن هل هناك طريقة أخرى لهذا?على سبيل المثال مثل بناء الجملة هذا:
My_New_Window(Values);
سؤال آخر.عندما نستخدم setappdata
أو getappdata
, حيث يخزن ماتلاب هذه البيانات?في ذاكرة الوصول العشوائي أو القرص الصلب?
المحلول
نعم ، يمكنك استخدام
My_New_Window(Values);
على سبيل المثال ، في الدليل ، مهما كانت المعلمات التي تمر إلى واجهة المستخدم الرسومية الخاصة بك ، يمكنك التعامل معها فيOpeningFcn
باستخدام لهاvarargin
المدخلات.ببساطة تعيينvarargin
إلى الخاص بكhandles
هيكل واستخدامguidata(hObject, handles);
فيما يتعلق
setappdata
- وفقا ل هذا الكتاب يتم تخزين البيانات داخل "كائن".نظرا لأن الكائنات موجودة في الذاكرة ، فمن الآمن افتراض أنها محفوظة بالفعل في ذاكرة الوصول العشوائي.
نصائح أخرى
يمكنك تخزين البيانات في خاصية بيانات المستخدم واجهة المستخدم الرسومية:
set(handletoFigure,'UserData',Values);
عند فتح واجهة المستخدم الرسومية الأخرى يمكنك استرداد المعلومات:
Values = get(handletoFigure,'UserData);
هل هناك سبب لماذا لا تريد استخدام سيتابداتا / جيتابداتا?
أما بالنسبة لسؤالك 2 أنا لا أعرف آسف.اعتقد انها ذاكرة الوصول العشوائي على الرغم من