יום ראשון, 26 ביוני 2016

GUI ליצירת GUIs

ממשק משתמש גרפי (GUI) הוא חלק בלתי נפרד ממערכות תוכנה רבות. גם בשפת MATLAB ניתן לכתוב ממשקי משתמש המפעילים פונקציות MATLAB, אבל למה לכתוב, אם אפשר להשתמש בממשק משתמש אינטראקטיבי ליצירת ממשקי משתמש ?

למי שלא מכיר, את ה-GUI ליצירת GUI-ים אפשר להעלות באמצעות הפקודה guide.

נבחר באופציה Blank GUI לצורך יצירת GUI חדש, ולצורך הדוגמה – נכין GUI עם מערכת צירים בה יוצג גרף של 10 מספרים אקראיים שיוגרלו ויוצגו לאחר לחיצה על לחצן ייעודי בממשק המשתמש.
את מערכת הצירים נצייר בעזרת לחצן ה-Axes (חץ ירוק), ואת הלחצן שבעקבות לחיצה עליו יוגרלו המספרים האקראיים ויוצגו על מערכת הצירים – נצייר בעזרת לחצן ה-Push Button (חץ אדום):

GUIDE - ניתן ללחוץ להגדלה

כעת, אפשר ליהנות מיכולת נפוצה בסביבת MATLAB, שהיא האפשרות לקבל קוד MATLAB שקול לכל הפעולות שביצענו בצורה אינטראקטיבית בעזרת העכבר. לשם כך נלחץ על לחצן ה-Run Figure המסומן בעיגול כחול בתמונה למעלה (יש לאשר את ההודעה המוצגת וכן לבחור שם ל-GUI).

אם נלחץ על לחצן ה-Push Button ב-GUI שנוצר – לא יקרה דבר – וזה הגיוני בהחלט לאור העובדה שטרם הוגדר מה בדיוק צריך לקרות בעקבות לחיצה עליו. על מנת להגדיר את הפעולה שצריכה להתבצע (הגרלת 10 מספרים אקראיים והצגתם) – אפשר לחפש בקוד ה-MATLAB שנוצר בצורה אוטומטית היכן נמצאת השורה בה יש לכתוב את שורות הקוד הרלוונטיות, אבל יותר פשוט – לחזור לסביבה בה יצרנו את ה-GUI, ללחוץ עם הלחצן הימני של העכבר על ה-Push Button, ולבחור View Callbacks ואז Callback. בעקבות כך – תסומן ב-m file שהופק שורת הקוד שלאחריה יש לכתוב:
plot(rand(10,1))
את ה-GUI המעודכן אפשר לטעון באמצעות הרצת קוד ה-MATLAB שהרגע נערך (F5), והנה התוצאה:


כמובן שניתן לקמפל את ה-GUI הנ"ל לאפליקציית Stand Alone (קובץ exe) באמצעות ה-MATLAB Compiler, לצורך העברתו למחשב בו אין רישיון MATLAB פעיל, או לארוז את ה-GUI בתור App לצורך העברתו למחשב בו מותקן MATLAB (לחצו לסרטון).

ברור גם שניתן לייצר ממשקים מורכבים יותר (עשינו שימוש רק בשניים מבין הלחצנים שב-GUIDE). למעוניינים – מומלץ לבדוק את הקישור הבא, המכיל 41 דוגמאות ליכולות שימושיות של ממשקי המשתמש הגרפיים בסביבת MATLAB (לחצו פה), וכן את ממשק ה-App Designer שהתווסף ל-MATLAB בגרסת R2016a (לחצו למידע).