در این مقاله قصد ساخت رابط گرافیکی کاربر در نرم افزار متلب را داریم که اصطلاحا به آن GUI گفته میشود. برای شروع کار از راهنمایی نرم افزار متلب بهره جسته و دستور زیر را وارد مینماییم :
>> guide
در نتیجه پنجره زیر باز میشود که باید گزینه اول را انتخاب نماییم :
سپس یک صفحه بدون عنوان باز خواهد شد. در منوی سمت چپ به چند بخش دسترسی داریم که میتوانیم آنها را به داخل محیط کاری خود بکشیم:
در این مثال ما قصد استفاده از گزینه های دکمه یا push button و متن ثابت یا static text را داریم
در گام اول به صورت درگ و دراپ، یک متن ثابت یا static text به صفحه اضافه میکنیم. با کشیدن گوشه پایین سمت راست صفحه ، میتوانیم اندازه پنجره کاری را بزرگ یا کوچک نماییم .
با دو بار کلیک بر روی static text ، به منوی گزینه های آن وارد میشویم. در این پنجره جدید به دنبال ویژگی string بگردین و عبارت داخل آن را پاک کنید و همچنین ویژگی tag این دکمه را عبارت output_line قرار دهید(البته این عبارت دلخواه است و برای دسترسی به ویژگی های این متن در هنگام کدنویسی مورد استفاده قرار میگیرد.
در بخش بعدی یک دکمه به صفحه اضافه کرده و دوبار روی آن کلیک مینماییم و ویژگی string آن را عبارت “نمایش پیام” قرار میدهیم. سپس دکمه دیگری را به همین ترتیب به پنجره اضافه نموده و عبارت “پاک کردن پیام” را برای آن قرار میدهیم. نتیجه به این صورت است :
در این مرحله بر روی دکمه اول راست کلیک نمایید و گزینه View Callbacks و سپس Callback را انتخاب نمایید و در پنجره جدید باز شده، تصویر را با نام دلخواه ذخیره نمایید. بعد از ذخیره کردن این بخش، به پنجره ویرایشگر متلب منتقل میشویم. متلب به طور خودکار توابع مربوطه را ایجاد میکند. از دیدن این خط کدها نگران نشوید و فقط بر روی کاری که نیاز است انجام دهیم متمرکز شوید. در واقع توابع callback، دستوراتی هستند که وقتی کاربر بر روی دکمه کلیک میکند اجرا میشوند. البته رویداد کلیک برای دکمه ها تعریف میشوند و بخش های مختلف که در صفحه کاربر نمایش داده میشوند میتوانند رویدادهای دیگری داشته باشند. در این مثال با کدهای مشابه کدهای زیر مواجه میشویم :
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MAT % handles structure with handles and user data (see GUIDATA)
حال به سراغ کدنویسی و ایجاد تغییرات خود میرویم . میخواهیم با کلیک بر روی دکمه اول، عبارت سلام دنیا درون static text نوشته شود . برای این کار از دستور set استفاده میکنیم و این دستور را در قسمت function pushbutton1_Callback وارد میکنیم :
set(handles.output_line,'String','Hello World!!')
اما توضیح کد بالا:
تابع set برای تغییر ویژگی عناصر موجود در صفحه به کار میرود. در بالا ما به static text خود تگ output_line را نسبت دادیم. که به وسیله این تگ در اینجا میتوانیم به آن دسترسی داشته باشیم. پس با آرگومان اول تابع set به عنصر متنی دسترسی و کنترل پیدا کریم. آرگومان دوم، ویژگی مورد نظر است که در اینجا string یا متن داخ static text است . آرگومان سوم نیز مقداردهی به ویژگی انتخاب شده است. پس داریم :
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MAT % handles structure with handles and user data (see GUIDATA) set(handles.output_line,'String','Hello World!!')
و به طور کاملا مشابه برای دکمه پاک کردن پیام خواهیم داشت :
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MAT % handles structure with handles and user data (see GUIDATA) set(handles.output_line,'String','')
برای مشاهده خروجی ، تنها کافیست در بالای صفحه ویراشگر، برنامه را اجرا نماییم :
در این مقاله با مقدمات ساخت رابط گرافیکی کاربر در نرم افزار متلب (Geraphic User Interface) آشنا شدیم.