آموزش GUI در MATLAB (قسمت چهارم)
در قسمت دوم آموزش GUI ، طراحی یک GUI نسبتا کامل و در ارتباط با آنالیز سیستم های کنترلی را آغاز کردیم. در قسمت سوم آموزش نیز کدنویسی آن را شروع کردیم. حال می خواهیم در این قسمت ادامه ی کدنویسی آن را انجام داده و GUI نهایی را تست کنیم.
به Callback منوی Exit رفته و قطعه کد زیر را وارد کنید:
... ,'?button = questdlg('Do you want to quit the ControlTool
;('Quit the ControlTool','Yes','No','No'
switch button
,'case 'Yes
;('close('ControlTool
,'case 'No
;quit cancel
end
توضیح کد:
این کد یک دیالوگ پرسشی را برای کاربر به نمایش درمی آورد. این دیالوگ معمولا دارای گزینه های Yes ، No و Cancel می باشد که در این مورد ما فقط از گزینه های Yes و No استفاده کرده ایم. اگر کاربر دگمه ی Yes را بفشارد، از برنامه ی ControlTool خارج می شود و اگر No را انتخاب کند، عملیات خروج، لغو می گردد.
به Callback منوی Reset رفته و همان کدی را که برای دگمه ی فشاری Reset در قسمت سوم آموزش شرح دادم، قرار دهید.
حال به Callback منوی Figure رفته و کد زیر را وارد کنید:
;(printdlg(ControlTool
این کد از کل GUI ی ما پرینت می گیرد. درواقع این دستور از کل محتویات یک شیء گرافیکی(که در این مورد این شیء گرافیکی ControlTool نام دارد)، پرینت تهیه می کند.
سپس به Callback منوی Response of LTI System رفته و قطعه کد زیر را وارد کنید:
;(axes1fig = figure(10010
;(axes1copy = copyobj(handles.axes1,axes1fig
;('set(axes1copy,'Units','default','Position','default
;(printdlg(10010
close 10010
توضیح کد:
این کد ابتدا یک شیء گرافیکی ایجاد کرده و سپس axes موردنظر را بوسیله ی دستور copyobj در آن شیء کپی می کند. پس از آن واحدها و مکان axes کپی شده در شیء ساخته شده به حالت پیش فرض خود می روند. بعد از آن از شیء گرافیکی ایجاد شده، پرینت گرفته می شود و نهایت هم شیء گرافیکی بسته می شود.
درادامه به Callbackهای Roots analysis و Frequency response رفته و همان کد بالا را برای آنها بنویسید. فقط تنها تغییری که می دهید این است که برای هرکدام، axes مربوطه را قرار می دهید.
حال به Callback منوی Show grid رفته و قطعه کد زیر را وارد کنید:
;('grid(handles.axes1,'on
;('grid(handles.axes2,'on
;('grid(handles.axes3,'on
همان طور که کاملا واضح است، این دستورات، نمودارها را شبکه بندی می کنند.
برای منوی Hide grid نیز عین این دستورات را به کار ببرید با این تفاوت که به جای on از off استفاده کنید. با این کار شبکه بندی کلیه ی نمودارها حذف می شود.
به Callback منوی Using the ControlTool رفته و کد زیر را وارد کنید:
;('helpdlg('This is a graphical user interface(GUI) that apply for analysis of linear systems.','Help
توضیح کد:
این دستور یک دیالوگ کمک را برای کاربر به نمایش در می آورد. نویسنده ی GUI ، می تواند در این قسمت تمامی مواردی را که به کاربر در نحوه ی استفاده از برنامه کمک می کند، وارد کند. این دیالوگ را اگر یادتان باشد، می توانیم با کلیدهای Ctrl+H نیز باز کنیم.
درنهایت به Callback منوی About ControlTool رفته و کد زیر را وارد کنید:
;('helpdlg('Created by Mojtaba Ayati nia Email: این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید ','About ControlTool
توضیح کد: این کد یک دیالوگ از نوع کمک را ایجاد می کند که شامل اطلاعاتی درباره ی سازنده ی برنامه و... می باشد. شما می توانید اسم و دیگر مشخصات خودتان را وارد کنید. در این مرحله کدنویسی به پایان رسیده و می توانیم GUI را اجرا کنیم.
اگر سؤالي داشتيد مي توانيد در بخش نظرات آن را مطرح كنيد.
از لینک زیر می توانید این GUI را دریافت کنید:
براي رفتن به ديگر قسمت ها، به روي لينك هاي زير كليك كنيد: