المكون
|
الوصف
|
Push Button
|
تقوم أزرار الضغط بفعل معين عندما
ينقر عليها عندما تنقر على زر الضغط ,
سيظهر أنه نقر وعندما تحرر الفأرة عنه فإن الزر سيظهر مرتفعاً.
|
Toggle Button
|
تولد أزرار التبديل فعلاً وتشير فيما إذا كانت مفعلة
أو ملغية , عندما تضغط على زر التبديل فإنه يظهر مضغوطاً موضحاً أنه مفتوح ,
عندما تحرر زر الفأرة على عكس زر الضغط فإن زر الضغط يبقى مضغوطاً حتى تنقره مرة
أخرى.
|
Radio Button
|
إن أزرار الخيار تشبه مربعات
الاختيار ولكن تكون نوعاً متعارضة ضمن مجموعة من أزرار الخيار المرتبطة , أي
يمكنك أن تحدد فقط زراً واحداً في نفس الوقت وتتم قيادة هذه الكائنات من قبل Button Group.
|
Check Box
|
إن مربعات الاختيار تولد فعلاً عندما تختبر وتشير
لحالتها أكانت مختبرة أم غير مختبرة, إن مربعات الاختبار مفيدة عندما يتم تزويد
المستخدم بعدد من الاختبارات المستقلة التي تضبط النمط.
|
Edit text
|
إن عناصر تحكم النص المحرر عبارة
عن حقول تمكن المستخدمين من إدخال أو تعديل العبارات النصية.
|
Static text
|
إن عناصر تحكم النص الستاتيكي تعرض خطوطاً من النصوص.
|
Slider
|
تقبل المنزلقات دخلاً رقمياً ضمن
مجال محدد وذلك بتمكين المستخدم من تحريك الشريط المنزلق الذي يدعى بالمنزلقة أو
الإبهام
|
List Box
|
تعرض مربعات القائمة قائمة من الأجزاء وتمكن
المستخدمين من اختيار أحد الأجزاء أو أكثر.
|
Pop-Up Menu
|
تعرض القائمة المنسدلة قائمة من
الاختبارات عندما ينقر المستخدمين على السهم.
|
Axes
|
إن المحاور تمكن واجهتك من عرض الرسومات والصور.
|
Panel
|
تجمع اللوحة مكونات الواجهة ,
بالتجميع البصري بالنسبة لأدوات التحكم , فإذا حركت اللوحة فإن أولادها ستتحرك
معها وتحافظ على مكانها على اللوحة.
|
Button Group
|
تعتبر مجموعة الأزرار هذه شبيهة باللوحات ولكن تستخدم
لتقود سلوك الاختبار الحصري لأزرار الخيار وأزرار التبديل.
|
ActiveX Component
|
تمكنك هذه المكونة من عرض أدوات
التحكم الفعالة في واجهتك.
|
1)
Radio Button
إن هذا الزر يمتلك خاصية التحديد أو عدمه فهو
إذا يبرمج بالطريقة التالية
if(get(hObject,ꞌValueꞌ)==get(hObject,ꞌMaxꞌ))
else
else
end
أما إذا كان لدينا عدة أزرار من هذا النوع ونريد تحديد أحداها و إزالة التحديد عن الباقين فإن العبارات البرمجية تكون :
Function
radiobutton1_callback(hObject,eventdata,handles)
Set([handles.tadiobutton2
handles.radiobutton3],ꞌValueꞌ,0)
Function
radiobutton2_callback(hObject,eventdata,handles)
Set([handles.tadiobutton1 handles.radiobutton3],ꞌValueꞌ,0)
Function
radiobutton3_callback(hObject,eventdata,handles)
Set([handles.tadiobutton2
handles.radiobutton1],ꞌValueꞌ,0)
2) Pop-Up
Menus
نضع خيارات عديدة في هذه القائمة المنسدلة عن طريق String وعندما نريد
أن نخص كل خيار ببرنامج معين فإن الvalue تقدم لنا رقم السطر الذي اخترناه في String وهذا يمكننا
من كتابة التالي :
Function popupmenu_callback(hObject,eventdata,handles);
Val=get(hObject,ꞌValueꞌ);
Switch val
case 1
case 2
end
Val=get(hObject,ꞌValueꞌ);
Switch val
case 1
case 2
end
ولكن إذا كان لدينا
خيارات عديدة ونريد التعامل مع ما كتبناه وليس مع رقم السطر :
Function popupmenu_callback(hObject,eventdata,handles)
val=get(hObject,ꞌValueꞌ);
String_list=get(hObject,ꞌstringꞌ);
Selected_string=string_list{val};
val=get(hObject,ꞌValueꞌ);
String_list=get(hObject,ꞌstringꞌ);
Selected_string=string_list{val};
إن نتيجة string_list ستكون
مصفوفة من النوع cell وفيها جميع الخيارات التي
وضعت في string.
3) Toggle
Button
إن هذا الزر يأخذ وضعيتين فعند الضغط يأخذ قيمة 1 في الـ
value الموجودة في
الخصائص وقيمة 0 عن الإفلات :
Function
togglebutton_callback(hObject,eventdata,handles)
Button_state=get(hObject,ꞌValueꞌ);
if button_state==1 ……. elseif button_state==0 …….
end
Button_state=get(hObject,ꞌValueꞌ);
if button_state==1 ……. elseif button_state==0 …….
end
4) Check
Boxes
Function checkbox1_callback(hObject, eventdata,
handles)
if(get(hObject,ꞌValueꞌ)==get(hObject,ꞌMaxꞌ))
else
end
else
end
5) edit
text
Function edittext1_callback(hObject, eventdata,
handles)
user_string = get(hObject,ꞌstringꞌ);
user_string = get(hObject,ꞌstringꞌ);
6) Sliders
Function slider1_callback(hObject, eventdata,
handles)
slider_string = get(hObject,ꞌValueꞌ);
slider_string = get(hObject,ꞌValueꞌ);
7) List
Box
إن هذا الزر يشبه Pop-Up Menu إلا أنك
تستطيع ان تختار هنا عدة خيارات في نفس الوقت. ضع هذا الكائن في صفحة فارغة من GUI واكتب في String عدة خيارات
ثم شغل الملف وحاول أن تختار اكثر من خيار تجد إنك لن تستطيع ذلك فماذا نفعل إزاء
ذلك ؟ نقوم بفتح خصائص الزر وتغيير قيمة max إلى قيمة
غير الواحد , ثم نعود ونلاحظ أنه أصبح بإمكاننا اختيار عدة خيارات.
Function
listbox1_callback(hObject, eventdata, handles)
index_selected = get(handles.listbox1,ꞌValueꞌ);
list = get(handles.listbox1,ꞌstringꞌ);
item_selected = list(index_selected);
index_selected = get(handles.listbox1,ꞌValueꞌ);
list = get(handles.listbox1,ꞌstringꞌ);
item_selected = list(index_selected);
أهم التعليمات المستخدمة في GUI
التابع get :
مهمته ببساطة أخذ أو معرفة أي خاصية لأي عنصر تريد بمعنى أنه عندما تضغط على أي عنصر مرتين فإن النافذة التي سوف تفتح أمامك هي نافذة خصائص هذا العنصر , إن كل هذه الخاصيات تستطيع معرفتها عن طريق تعليمة get.
التابع global
:
ملف البرمجة يحوي على العديد من التوابع لكن هذه التوابع مستقلة أي أن المتغيرات الموجودة في function ما لا تؤثر على المتغيرات الموجودة في الآخر (المتغيرات المحلية) حتى لو كانا يملكان نفس الاسم فلذلك أحياناً نريد تصدير قيمة المتغير من تابع لآخر فنلجأ لجعل هذا المتغير عالمي أو شامل وذلك باستخدام هذه التعليمة.
التابع get :
مهمته ببساطة أخذ أو معرفة أي خاصية لأي عنصر تريد بمعنى أنه عندما تضغط على أي عنصر مرتين فإن النافذة التي سوف تفتح أمامك هي نافذة خصائص هذا العنصر , إن كل هذه الخاصيات تستطيع معرفتها عن طريق تعليمة get.
Variable=get(handles.buttonname,ꞌpropertyꞌ)
التابع set
:
هذه التعليمة مقابلة لعمل get فهي تقوم
بوضع أو تغيير خاصية معينة ما برمجياً.
set(handles.buttonname,ꞌpropertyꞌ,variablename)
ملف البرمجة يحوي على العديد من التوابع لكن هذه التوابع مستقلة أي أن المتغيرات الموجودة في function ما لا تؤثر على المتغيرات الموجودة في الآخر (المتغيرات المحلية) حتى لو كانا يملكان نفس الاسم فلذلك أحياناً نريد تصدير قيمة المتغير من تابع لآخر فنلجأ لجعل هذا المتغير عالمي أو شامل وذلك باستخدام هذه التعليمة.
التابع guidata:
إن GUIDE و بشكل تلقائي يستخدم guidata و لإنشاء المحافظة على بنية handles, هذه البنية تمرر بشكل أوتوماتيكي كوسيط لكل استدعاء, حيث أن البنية handles تتضمن المقابض لكل المكونات في الواجهة GUI. في الواجهات المبنية باستخدام GUIDE, فإنه لا يمكنك استخدام guidata لقيادة أي متحول غير البنية handles. إذا فعلت ذلك, فإنه يمكن أن تكتب فوق بنية handle وبالتالي واجهتك لن تعمل. إذا كنت تريد استخدام معطيات الواجهة GUI لتشارك المعطيات المعرفة للتطبيق ضمن الاستدعاءات , فإنه يجب عليك أن تخزن المعطيات في الحقول التي تريد أن تضيفها إلى بنية handles. لاحظ أن قوالب GUIDE تستخدم بنية handle لتخزين المعطيات المعرفة للتطبيق. هذه البنية مفيدة جداً في حال برمجة تطبيقات تحوي عدة واجهات رسومية حيث إنها الأساس لتمرير الوسطاء بين الواجهات الرسومية.
إن GUIDE و بشكل تلقائي يستخدم guidata و لإنشاء المحافظة على بنية handles, هذه البنية تمرر بشكل أوتوماتيكي كوسيط لكل استدعاء, حيث أن البنية handles تتضمن المقابض لكل المكونات في الواجهة GUI. في الواجهات المبنية باستخدام GUIDE, فإنه لا يمكنك استخدام guidata لقيادة أي متحول غير البنية handles. إذا فعلت ذلك, فإنه يمكن أن تكتب فوق بنية handle وبالتالي واجهتك لن تعمل. إذا كنت تريد استخدام معطيات الواجهة GUI لتشارك المعطيات المعرفة للتطبيق ضمن الاستدعاءات , فإنه يجب عليك أن تخزن المعطيات في الحقول التي تريد أن تضيفها إلى بنية handles. لاحظ أن قوالب GUIDE تستخدم بنية handle لتخزين المعطيات المعرفة للتطبيق. هذه البنية مفيدة جداً في حال برمجة تطبيقات تحوي عدة واجهات رسومية حيث إنها الأساس لتمرير الوسطاء بين الواجهات الرسومية.