16
6.1 لا تاميلعتلا مهأ يف ةمدختسم
GUI
ةميلعت : get
ةطاسبب اهتمهم رصنع يلأ ةيصاخ يأ ةفرعم وأ ذخأ
, ىلع طغضت امدنع هنأ ىنعمب ديرت
, رصنعلا اذه صئاصخ ةذفان يه كمامأ حتفت فوس يتلا ةذفانلا نإف نيترم رصنع يأ ةميلعت قيرط نع اهتفرعم عيطتست تايصاخلا هذه لك نإ .get
Variable=get(handles.buttonname,ꞌpropertyꞌ)
ةميلعت : set
لمعل ةلباقم ةميلعتلا هذه .ًايجمرب ام ةنيعم ةيصاخ رييغت وأ عضوب موقت يهف get
set(handles.buttonname,ꞌpropertyꞌ,variablename)
ةميلعت global :
تاريغتملا نأ يأ ةلقتسم عباوتلا هذه نكل عباوتلا نم ديدعلا ىلع يوحي ةجمربلا فلم يف ةدوجوملا function
تاريغتملا( رخلآا يف ةدوجوملا تاريغتملا ىلع رثؤت لا ام
عبات نم ريغتملا ةميق ريدصت ديرن ًانايحأ كلذلف مسلاا سفن ناكلمي اناك ول ىتح )ةيلحملا اذه لعجل أجلنف رخلآ .ةميلعتلا هذه مادختساب كلذو لماش وأ يملاع ريغتملا
اـيـجـمرـب ةيـموـسرـلا تاـهـجاوـلا مـيـمـصـت
11
ةهجاو نإ , لولأا سردلا يف اهيلع فرعتلا مت ةنيبملا جمانربلا يف ةدوجوملا تانئاكلا ةفاك نإ : نمضتت لاثملا - رواحم ةلمج .axes
- ةقثبنم ةمئاق pop-up menu
يف عباوت لباقت يتلا و تايطعملا نم ةفلتخم تاعومجم درست
MATLAB sine , membrane , peaks يه
.
- .ةقثبنملا ةمئاقلل ةيمست عضو لجأ نم يكيتاتسا صن
- لاكشلأا نم ةفلتخم عاونأ ةثلاث يطعت طغض رارزأ ةثلاث contour , mesh , surface
.
لاثملا اذه مادختسا لجأ نم GUI(
ةمئاقلا نم تايطعملا نم ةعومجم راتخي مدختسملا نإف )
غض رارزأ نم دحأ رقني هنإف اهدنعو , ةقثبنملا ذيفنت لمشي رزلا ىلع رقنلا نإ , مسرلا عون ط
.رواحملا ةلمج نمض ةراتخملا تايطعملا مسري يذلا ءاعدتسلاا
2.7 ةمدـخـتـسملا عـباوـتـلا مـهأ
جمانرب رفوي بلاتاملا
حضوي .ةيموسرلا مدختسملا تاهجاو ءانبو ءاشنلإ عباوتلا نم ةعومجم
.سوردملا لاثملا ءانبل اهجاتحت يتلا عباوتلا مهأ يلاتلا لودجلا عـباـتـلا فـصوـلا
Align مدختسملا ةهجاول مكحتلا رصانع و رواحم يذاحي
رواحم رصانع ئشني Axes
Figure نأ ثيح لكشلا رصانع ئشني
لكش رصنع يه GUI
Movegui لكش كرحي
ةشاشلا ىلع ددحم ناكم ىلإ GUI
Uicontrol و , يكيتاتس صن , طغضلا رارزأ لثم مدختسملا ةهجاوب مكحتلا رصانع ئشني
ةقثبنملا مئاوقلا
16
3.7 فـلـم ءاـشـنإ MATLAB
ةيموسرلا مدختسملا ةهجاول
فلم ءانب و ءاشنإب أدبا M-file
. ةسوردملا ةهجاولل
1 . هجوم ىلع MATLAB
بتكا , .ررحملا حتفب بلاتاملا موقيف edit
2 . فلملا نم لولأا رطسلا يه هذه عباتلا ةميلعت .ةيلاتلا تاميلعتلا بتكا function
simple_gui .
3 . فلم ىلإ تاقيلعتلا هذه فضأ MATLAB
تاقيلعتلا هذه ضرعُت فوس .عباتلا ةميلعت دعب
رملأل ةباجتسا رملأا رطس يف ي و .help
.غراف رطسب عبتت نأ بج function simple_gui_test
% SIMPLE_GUI Select a data set from the pop-up menu, then
% click one of the plot-type push buttons. clicking the button
% plots the selected data in the axes
end
ةيملعتلا ةباتكل انه جاتحن ( ةلخادتملا عباوتلا مادختساب بوتكم لاثملا نأ ببسب end
nested
functions .)
4 . تافلم راسم هيف يذلا ناكملا يف وأ يلاحلا كدلجم ىلع فلملا نزخ MATLAB
ةصاخلا
ةهجاولا طيطخت نوكتس ةيلاتلا ةوطخلا .كب . ةطيسبلا GUI
4.7 طـيـطـخـت GUI
: نيتلحرم ىلع ةيموسرلا مدختسملا ةهجاو طيطخت متي - . لكشلا ءانب
- .تانوكملا ةفاضإ
- لكشلا ءانب )ةـهـجاوـلا مـيـمـصـت(
:
خلا نإف يلاتلاب و .لكش نع ةرابع ةهجاولا نإف , بلاتاملا جمانرب يف يه ىلولأا ةوط
نأ
و لكشلا ئشنت ت
لعجت ًاضيأ اهنإ .ةشاشلا ىلع هعض ةيئرم ريغ GUI
مدختسم نإف اذل و GUI
ىلع تانوكملا عيمج ةفاضإ متي امدنع .ةأيهملا وأ ةفاضملا تانوكملا ىري نأ عيطتسي لا .ةيئرم اهلعجيس لاثملا نإف , ةأيهم نوكت و ةهجاولا
% Initialize and hide the GUI as it is being consructed.
f=figure('Visible','off','Position',[360,500,450,265]);
: ةباتكب ةهجاولا ةيفلخ نول رييغت نكمي و
f=figure('Visible','off','Position',[360,500,450,265],'Color',[0.1 0.2 0.6]);
لمحتل وأ ةيموسرلا ةهجاولا ىوتحمل رثكأ ةبسانم نوكتل نحن اهراتخن ءامسأ عضو اندرأ ول : ةباتك ةطاسبب نكمي , قيبطتلا مسا
f=figure('Visible','off','Position',[360,500,450,265],'Color',[0.1 0.2 0.6],'Name','Demo Design');
16
: ةطاسبب و بتكن ةهجاولا اهفيضت يتلا ةيئاقلتلا ةيمستلا نم صلختلا اندرأ ول
f=figure('Visible','off','Position',[360,500,450,265],'Color',[0.1 0.2 0.6],'Name','Demo Design','NumberTitle','off');
: ةهجاولا ىلع لصحن ةجيتنلابو
: بتكن ةشاشلا مجح رييغت ةيحلاص ليطعت اندرأ ول
f=figure('Visible','off','Position',[360,500,450,265],'Color',[0.1 0.2 0.6],'Name','Demo Design','NumberTitle','off','Resize','off');
نكر يف اهراصحنإ مدع و ةهجاولل ةنوكملا رصانعلا عزوت ىلع ظافحلا كلذ نم ةياغلاو تانوكملل ةدنسملا تايثادحلإا نوكت امدنع لكاشملا هذه ثدحت نأ نكمي .اهريبكت دنع دحاو ريغتملا ةميق هددحت يذلا ةهجاولا مجح نع ةلقتسم و ةتباث ScreenSize
.
يغتملا ةميقل قباسلا فيرعتلا ناك ر
Position نيعب ذخأ كانه نكي مل هنلأ . ةيئادب ةقيرطب
للاغتسإ اننكمي لاكشلإا اذه زواجتلو , رخلآ بوساح نم ريغتملا ةشاشلا مجحل رابتعلاا ريغتملا ScreenSize
SCREENSIZE=get(0,'ScreenSize')
f=figure('Visible','off','Position',[SCREENSIZE(1) SCREENSIZE(2) SCREENSIZE(3) SCREENSIZE(4)],'Color',[0.1 0.2 0.6],'Name','Demo
Design','NumberTitle','off','Resize','off');
عبات بلط نإ figure
ةيصاخ/ةميق يجوز مدختسي property/value
ةيصاخ نإ .
Position ( رصانعلا يعابر عاعش نع ةرابع
4-element ناكم ددحي )
ىلع GUI
عبأ و ةشاشلا : اهدا
ضرعلا ,عافترلاا , لفسلأا نم ةفاسملا , راسيلا نم ةفاسملا] تادحاولا .[
لسكيبلا يه ةيضارتفلاا pixels
.
تايصاخ جاردإ ربع ةيموسرلا ةهجاولا ىلع ىرخأ تلايدعت ةدع ةفاضإ جمربملل نكميو . اهنم لك ةفيظو و صئاصخلا مهأ يلاتلا لودجلا نيبي و .ىرخأ
ةفيظولا ةيصاخلا
ةهجاولا نول ليدعت Color
ماهملا طيرش فذح وأ ءاقبإ Menubar
ةيموسرلا ةهجاولا ةيمست Name
ةهجاولا ميقرت ليدعت Numbertitle
ملأا ةهجاولا ديدحت Parent
16
سيياقملا و ناكملا ديدحت Position
ةشاشلا مجح ليدعت ةيحلاص Resize
رشؤملا ديدحت Tag
طيرش فذح وأ ءاقبإ تاودلأا
Toolbar
مدختسملا تانايب Userdata
ةهجاولا ءافخإ وأ راهظإ Visible
- تانوكملا ةفاضإ :
ةهجاول سوردملا لاثملا مضي يكيتاتس صن , طغض رارزأ ةثلاث : تانوكم ةتس GUI
دحاو
هذه فيضت يتلا تاميلعتلا ةباتكب أدبنل .ةدحاو رواحم ةلمجو , ةدحاو ةقثبنم ةمئاقو , ىلإ تانوكملا عباتلاب متي ةقثبنملا ةمئاقلا ,يكيتاتسلا صنلا , طغضلا رارزأ ءاشنإ نإ .GUI
uicontrol عباتلا للاخ نم متيف رواحملا ءاشنإ امأ .
.axes
1 . ىلإ ةثلاثلا طغضلا رارزأ فضأ فلملا ىلإ تاميلعتلا هذه ةفاضإب كتهجاو
M-file
عباتلا بلط دعب كلذو figure
.
% Construct the components.
hsurf = uicontrol('style','pushbutton','String','Surf','Position',[315,220,70,25]);
hmesh = uicontrol('style','pushbutton','String','Mesh','Position',[315,160,70,25]);
hcontour = uicontrol('style','pushbutton','String','countour','Position',[315,135,70,25]);
عباتلا تاميلعتلا هذه مدختست uicontrol
نم ةلسلس مدختست ةميلعت لك .طغضلا رارزأ ءاشنلإ
ةيصاخ/ةميق جاوزلأا propert/value
مهأ فصي و لودجلا حضويو .طغضلا رز فيرعتل
.اهؤاشنإ مت يتلا ةنوكملا ضبقم عاجرتسا متي بلط لك يف هنأ ملعلا عم صئاصخلا ـلا ةـيـصاـخ فـصوـلا
Style , لاثملا يف
pushbutton طغض رزك نوكملا ددحت
String .طغض رز لك ىلع رهظيس يذلا مسلاا ددحن
Position نمض طغض رز لك ناكم ديدحتل رصانعلا يعابر عاعش مدختست
GUI
.لسكيبلا يه ةيضارتفلاا تادحاولا و , هسايقو
Parent ملأا ةهجاولا ديدحت
Backgroundcolor ةيفلخلا نول ديدحت
رشؤملا ديدحت Tag
FontWeight ةباتكلا عون ديدحت
Callback يتلا ةلادلا مسا ديدحت , ءاعدتسلاا
روطسلا ذيفنتل اهئاعدتسا ديرن
نئاكلا ىلع طغضلا نع ةبولطملا ةيجمربلا
Interruptible يحوي امك , نوكملل ةدنسملا ةفيظولا ليطعت ةيناكمإ رفوت , ليطعتلا
.اهمسإ
Value ةميقلا ديدحت
67
2 . لا فضأ فلملا ىلإ تاميلعتلا هذه ةفاضإب كتهجاو ىلإ اهناونع و ةقثبنملا ةمئاق
M-file و
.طغضلا رز تافيرعت دعب كلذ
hpopup=uicontrol('style','popupmenu','String',{'Peaks','Membrane','Sine'},'Position',[3 00,50,100,25]);
htext=uicontrol('style','text','String','Select Data','Position',[325,60,60,15]);
ةيصاخ نإف ةقثبنملا ةمئاقلا لجأ نم String
نم ةثلاثلا ءازجلأا ددحتل ةيلخ ةفوفصم مدختست
: ةقثبنملا ةمئاقلا Sinc , Membrane , Peaks
مدختسي هنإف يكيتاتسلا صنلل ةبسنلاب امأ .
ةيصاخ نإ .ةقثبنملا ةمئاقلا ةنونعل String
مدختسم ربخت صنلا اذهل تايطعم راتخيل GUI
Select Data تانوكملا هذهل ةيضارتفلاا تادحولا .
.لسكيبلا يه
3 . ىلإ رواحملا فضأ فلملا ىلإ ةيلاتلا ةميلعتلا ةفاضإب كلذو GUI
M-file طبضا .
ةيصاخ Units
.ىرخلاا تانوكملا تادحاو سفن كلمت اهنا ثيحب لسكيبلا ىلع
ha=axes('Units' , 'pixels' , 'Position',[50,60,200,165]);
4 . ىلإ اهفضأ , ةيلاتلا ةميلعتلاب كلذو اهزكرم لوح رواحملا ادع ام تانوكملا عيمج يذاح
فلملا M-file : تانوكملا تافيرعت لك دعب
align([hsurf,hmesh,hcontour,htext,hpopup],'Center','None');
5 . كتهجاو لعجا : ةاذاحملا رمأ دعب رملأا اذه ةيئرم GUI
set(f,'Visible','on')
6 .
هب فلم نوكيس لكشلا اذ M-file
: يلي امك
function simple_gui
% SIMPLE_GUI Select a data set from the pop-up menu, then
% click one of the plot-type push buttons. clicking the button
% plots the selected data in the axes
% Initialize and hide the GUI as it is being consructed.
f=figure('Visible','off','Position',[360,500,450,265]);
% Construct the components.
hsurf = uicontrol('style','pushbutton','String','Surf','Position',[315,220,70,25]);
hmesh = uicontrol('style','pushbutton','String','Mesh','Position',[315,160,70,25]);
hcontour = uicontrol('style','pushbutton','String','countour','Position',[315,135,70,25]);
hpopup=uicontrol('style','popupmenu','String',{'Peaks','Membrane','Sine'},'Position',[3 00,50,100,25]);
htext=uicontrol('style','text','String','Select Data','Position',[325,60,60,15]);
ha=axes('Units' , 'pixels' , 'Position',[50,60,200,165]);
align([hsurf,hmesh,hcontour,htext,hpopup],'Center','None');
set(f,'Visible','on') end
66