واسط گرافیکی کاربر (GUI) graphical user interface
Download
Report
Transcript واسط گرافیکی کاربر (GUI) graphical user interface
درس نرم افزارهای کاربردی در الکترونیک
آشنایی با GUI
در متلب
مهدی اکبری
اردیبهشت 87
1
واسط گرافیکی کاربر (GUI) graphical user interface
• همان طور که برای خیلی از زبانهای برنامه نویس ی پایه مثل Basicو قسمتی
به نام visualایجاد شده است MATLAB ،هم ابزاری به نام GUIDEدارد که
توسط آن می توان رابط های گرافیکی مثل دکمه ها ( ، (PUSH BUTTONلیست
ها ( ، )LIST BOXاسالیدرها( )SLIDERو . . .ایجاد کرد.
2
این ابزار زمانی به درد می خورد که شما آن را برای افرادی که احتماال با کار با دستورات
MATLABرا آشنایی ندارند به کار ببرید .مثال فرض کنید شما می خواهید یک
نمودار را با قطر های مختلف رنگهای متفاوت و اندازه های گوناگون رسم کنید.اگر
شما کمی با برنامه نویس ی در MATLABآشنا باشید می توانید تمام دستورات را به
اجزای گرافیکی بسپارید تا مثال با فشار یک دکمه یک نمودار رسم شود و با انتخاب یک
یک گزینه از منوی کشویی فرضا شکل نمودار تغییر کند .
3
شروع کار با : GUI
.1استفاده ازابزارGUIDE
.2استفاده از منوی Fileو انتخاب گزینه Newو سپس GUI
4
در ادامه در برگه Create New GUIو با انتخاب Blank GUIصفحه ای مانند
شکل زیر ایجاد می شود :
5
مثال
• پنجره ای بسازید شامل:
-1یک دکمه فشاری Push Buttonکه روی آن کلمه Timeنوشته شده
باشد و پس از کلیک ساعت را روی خودش نمایش دهد.
-2یک دکمه متن ایستا Static text buttonکه روی آن Dateنوشته شده
باشد و پس از فشردن دکمه فشاری قبلی تاریخ را نشان دهد.
-3یک دکمه فشاری که روی آن Refreshنوشته باشد و دو دکمه قبل را به
حالت اول برگرداند.
6
7
نکته
• هر ش ی کنترلی در صفحه GUIبا یک سریمشخصات شناخته می شود که
آنها را می توان با دو بار کلیک روی ش ی در صفحه Guideبدست آورد.
8
• شاخصه عنوان String
این شاخصه برای بعض ی از اشیاء Stringو برای بعض ی از اشیاء Name
گفته می شود و روی شیئ حک می شود.
• شاخصه برچسب )(Tag
شاخصه برچسب Tagنام شیئ است که در برنامه با این نام به شیئ
مراجعه می شود.
9
10
• بعد از ایجاد دکمه های کنترلی برنامه را saveمی کنیم.
• بعد از saveبرنامه دو فایل با پسوند *.mو *.figایجاد می شود و
MATLABکدی را ایجاد می کند و به اشیا درون شکل ،یک تابع و
callbackرا نسبت می دهد.
11
توابع فراخوان Callback Function
• در داخل برنامه برای عمل یا اعمالی که با فشردن یک دکمه یا کلیک روی یک
پنجره انجام می شود تابعی می نویسیم که تابع فراخوان آن پنجره و یا
Callback Functionآن دکمه نامیده می شود.
12
برنامه نویس ی
• در محیط M-Fileبا استفاده از کلید Fدر قسمت Tool Barمی توان
به CallBackمربوط به هر کلید مراجعه نمود و عملکرد مربوط به آن
کلید را برایش تعریف کرد.
13
function pushbutton1_Callback(hObject, eventdata, handles)
t = clock;
d = date;
tm = sprintf('%2.0f: %2.0f: %2.0f:',t(4),t(5),t(6));
. می نویسدtm دقیقه و ثانیه را داخل متغیر رشته ای،دو رقم از رشته های ساعت
dt = sprintf('%12s',d);
. مکان ایجاد و رشته ی تاریخ را در آن می نویسد12 را باdt متغیر
set(handles. pushbutton1,'String',tm)
set(handles.text1,'String',char(dt))
14
• دستور : double
متغیر ها می توانند با استفاده از این تابع از نوع charبه doubleتبدیل شوند.
'>> a='matlab
=a
matlab
)>> x=double(a
=x
109 97 116 108 97 98
•
دستور : char
عکس عمل باال را انجام می دهد یعنی متغیر ها را از نوع دابل به کاراکتری تبدیل می کند.
)>> char(x
= ans
matlab
15
function pushbutton2_Callback(hObject, eventdata, handles)
set(handles.pushbutton1,'String','Time')
set(handles.text1,'String','Date')
16
برنامه ی GUIفوق از 3طریق اجرا است:
.1در پنجره LEبا انتخاب Runاز میله ابزار
.2در پنجره LEبا انتخاب Runاز منوی Tools
.3از داخل M-Fileبه طریق معمول اجرای آنها
17
برنامه نویس ی اسالیدر در Mtatlab
• Sliderاشیاء گرافیکی هستند که به کاربر این امکان را می دهند تا مقداری
را از میان دامنه پیوسته ای از مقادیر ،با حرکت یک barبه وسیله ماوس ،
انتخاب کند .این مقدار بین مینیمم و ماکزیمم مقادیر پیش فرض تغییر می
کند .
18
مثال
• یک GUIطراحی کنید که با لغزاندن BARآن اعدادی بین 0تا 100تغییر
کند و در یک statictextنمایش داده شود حال فرض کنید این داده ها
دمای بر حسب سانتیگراد باشند در ادامه برنامه را طوری طراحی کنید که
همین دما ها که بین 0تا 100هستند در یک statictextدیگر برحسب
درجه فارانهایت نمایش داده شوند.
19
20
)1تنظیم اسالیدر
• tagرا به sliderتغییر می دهیم .
• در حالت پیش فرض که از اسالیدر استفاده می کنیم اعداد آن بین 0تا 1و با استپ 0.01تغییر می
کنند .برای اینکه اسالیدر بین 0تا 100تغییر کند در property inspectorمربوط به اسالیدر
گزینه Minرا به 0و گزینه Maxرا به 100تغییر می دهیم .
• برای اینکه اسالیدر با استپ 1حرکت کند باید در property inspectorدنبال گزینه ای به نام
slider stepبگردیم که یک بردار با دو عضو xو yاست .
• هر وقت خواستیم یک بازه را به نقاط دلخواه خود تقسیم بندی کنیم تعداد آن نقاط را معکوس می کنیم و
در xقرار می دهیم .بنابراین برای تقسیم بندی به 100قسمت بایستی مقدار xرا برابر 0.01قرار دهیم .
• xبرای کلیک روی فلش ها است یعنی با هر بار کلیک روی فلش یکی مقدار اسالیدر تغییر می کند اما y
درصد تغییر را برای کلیک روی سایر قسمتهای اسالیدر مشخص می کند.
)2دو statictextبه نامهای Celsiusو Fahrenheitبا tagهای text1و text2ایجاد می کنیم.
21
22
function slider_Callback(hObject, eventdata, handles)
celsius=get(handles.slider,'value');
.مقادیر را از اسالیدر دریافت می کند
set(handles.text1,'string',celsius);
. قرار می گیرندstatic text این مقادیر در
fahrenheit=(9/5)*(celsius)+32;
.مقادیر طبق رابطه به فارانهایت تبدیل می شوند
fahrenheit=num2str(fahrenheit);
.به رشته تبدیل می شوند
set(handles.text2,'string',fahrenheit);
. قرار می گیرندstatic text این مقادیر در
23
منیو
. ساده است که امکان انتخاب چند گزینه را فراهم می کندGUI منیو یک
. اجرا کنیدmenu() فایل راهنمای چند دستور متلب را با استفاده از دستور- در یک ام:مثال
k = 0;
while k < 4;
k = menu('Help Menu','Operators','Mod','Rem','Exit');
if k == 1
help \
elseif k == 2
help mod
elseif k == 3
help rem
else
a = input('Really Exit? (Y/N) ','s');
if (a == 'n') || (a =='N')
k = 3;
end
end
end
24
•
•
روش ایجاد فایل اجرایی در : MATLAB
• بعد از اینکه m-fileرا در matlabایجاد کردیم وکد نویس ی آن تمام شد و اطمینان حاصل کردیم
که فایل ما در Current directoryوجود دارد باید اطمینان حاصل کنید که یک کامپایلر مناسب
با کار ما روی کامپیوتر نصب باشد که برای این منظورکامپایلر visual c++توصیه می شود .
•
•
حال به این صورت عمل می کنیم:
فرض می کنیم نام فایل شما test.mباشد در پنجره فرمان تایپ می کنیم:
>> mcc –m test.m
• پس از مدتی matlabیک سری فایل در دایرکتوری جاری ایجاد می کند که یکی از آنها test.exe
است .
• اکنون در صورتی که حتی با بسته بودن matlabفایل اجرایی را اجرا کنید اول یک پنجره مثل پنجره
های داس باز میشود که در حکم Command Windowشماست .
اما این نکته را بایستی به یاد داشته باشید که این فایل در کامپیوتری اجرا میشود که در آن کامپایلر matlabنصب
باشد .
25