در قسمت دوم آموزش 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 را دریافت کنید:

دانلود

 

براي رفتن به ديگر قسمت‌ها، به‌روي لينك‌هاي زير كليك كنيد:

آموزش GUI (قسمت اول)

آموزش GUI (قسمت دوم)

آموزش GUI (قسمت سوم)

آموزش GUI (قسمت چهارم)

 

مطالب مشابه

کتاب آموزش شبیه سازی و مدل ساز

  مشخصات: مولف: دکتر نیکوبین (استاد دانشکده مکان

کتاب الکترونیکی سری سوم - آموز

      اي که برای دانلود قرار داده شده است براي

کتاب آموزش MATLAB

  نویسندگان: مهندس علی اکبر علمداری، مهندس نسرین

آموزش كاربردي مباحث پيشرفته با

آموزش كاربردي مباحث پيشرفته با Matlab            

آموزش GUI (قسمت اول)

در چند قسمت قصد دارم نحوه كار كردن با GUI رو به شم

آموزش سیمولینک (قسمت اول)

با عرض سلام خدمت دوستان عزيز قصد دارم در چند قسمت

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید