ebook archive
Login Form
آمار کلی
بازدیدکنندگان : 1494740Who's Online
ما 33 مهمان آنلاین داریمآخرين ارسالهاي تالار
-
- مقایسه چند برنامه در متلب
- 32 دقيقه پيش
-
- حرکت یک شی بر روی یک منحنی
- 2 ساعت, 58 دقيقه پيش
-
- چگونگی ساخت فایل exe در متلب
- 13 ساعت, 27 دقيقه پيش
-
- دستور مطلب
- 14 ساعت, 23 دقيقه پيش
-
- سوال: حاصل معادله Ax2+Bx+C با استفاده از متلب
- 14 ساعت, 26 دقيقه پيش
| آموزش GUI (قسمت چهارم) |
|
|
|
| نوشته شده توسط مجتبی آیتی نیا |
| شنبه, 27 شهریور 1389 ساعت 18:00 |
|
در قسمت دوم آموزش 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: آدرس ایمیل جهت جلوگیری از رباتهای هرزنامه محافظت شده اند، جهت مشاهده آنها شما نیاز به فعال ساختن جاوا اسکریپت دارید ','About ControlTool');
توضیح کد: این کد یک دیالوگ از نوع کمک را ایجاد میکند که شامل اطلاعاتی دربارهی سازندهی برنامه و... میباشد. شما میتوانید اسم و دیگر مشخصات خودتان را وارد کنید. در این مرحله کدنویسی به پایان رسیده و میتوانیم GUI را اجرا کنیم.
اگر سؤالي داشتيد ميتوانيد در بخش نظرات آن را مطرح كنيد. از لینک زیر میتوانید این GUI را دریافت کنید:
براي رفتن به ديگر قسمتها، بهروي لينكهاي زير كليك كنيد:
نظر ها (61)
Powered by !JoomlaComment 4.0 beta2
|
| آخرین بروز رسانی در جمعه, 01 اردیبهشت 1391 ساعت 19:56 |









ممنون از زحماتتون