יום שני, 23 ביולי 2012

A Guide to GUIDE | פיתוח ממשקים גרפיים ידידותיים למשתמש בעזרת MATLAB

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

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

ניתן לשנות בקלות את גודל ה-GUI, צבע הרקע או הכיתוב על הלחצן. למשל, לצורך ביצוע המשימה האחרונה, יש להקליק על הלחצן פעמיים עם העכבר, ולשנות את השדה String (אני שיניתי ל-Push here to display plot). התוצאה בינתיים נראית כך:


כעת, כל שנותר הוא ללחוץ על לחצן ה-play הירוק (מופיע בצד ימין בשורה העליונה), לאשר את ההודעה הקופצת אל המסך (אחרי קריאתה...) ולתת שם ל-m file שיווצר ויכיל את הפקודות אשר בעבר הייתם חייבים לכתוב ידנית לצורך קבלת GUI דומה.

כפי שתשימו לב, ה-GUI שקיבלתם בהחלט נראה כמצופה, אבל לא ממש מתפקד. על מנת שלחיצה על לחצן ה- Push here to display plot תביא להצגת הגרף, יש להגדיר ללחצן זה מה אמור להתבצע כאשר לוחצים עליו. חיזרו ל-GUI המיוחד, הקליקו עם המקש הימני של העכבר על הלחצן, וביחרו ב-View Callbacks ואז ב-Callback. תוצאת פעולה זו היא מיקום של הסמן בקוד ה-MATLAB שנוצר לא מזמן, בדיוק בשורה שמתחתיה יש לכתוב את הקוד שצריך להתבצע בעת לחיצה על הלחצן. במקרה שלנו:
plot(rand(10,1));

כעת, אם תריצו את קוד ה-MATLAB (באמצעות F5), תקבלו שוב את ה-GUI, אך הפעם הוא גם יתפקד כהלכה:


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

האם אתם מפתחים GUIs באמצעות GUIDE או באמצעות פקודות? האם יש GUI משוכלל שפיתחתם ותרצו להשוויץ בו?

אין תגובות:

הוסף רשומת תגובה