אגף התקשוב, אוניברסיטת בר אילן קורס תוכנת מטלב ויישומיה ד"ר סמדר שץ מימוש ממשק משתמש ע"י GUIDE קורס תוכנת מטלב ויישומיה שיעור מס' 12: שימוש ב- GUIDE -

מסמכים קשורים
תוכנת מטלב ושימושיה שיעור 12

The MATLAB Notebook v1.6

אגף התקשוב, אוניברסיטת בר אילן קורס תוכנת מטלב ויישומיה ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה שיעור מס' 11: תכנות ממשקי משתמש תכנות מונחה-אירועים תכנות

ייבוא וייצוא של קבצי אקסל וטקסט

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

מצגת של PowerPoint

מדריך למרצים ומתרגלים 1

תכנות מונחה עצמים א' – תש"ע

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

שאלהIgal : מערכים דו מימדיים רקורסיה:

HTML - Hipper Text Makeup Language

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

שאלהIgal : מערכים דו מימדיים רקורסיה:

מיכפל

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

Microsoft Word - Ass1Bgu2019b_java docx

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

מרצים יקרים, אתר המכללה מאפשר למרצי המכללה להזין את פרטיהם וקורות חייהם. זאת בדומה לאתרים מקבילים של מוסדות אקדמיים בארץ ובעולם. עמודי המרצים נועדו לא

הנחיות הורדה ותפעול לספרים דיגיטלים. הוצאת כנרת, זמורה ביתן שמחה להגיש לכם, התלמידים, ספר דיגיטלי. הספרים עצמם הינם בקבצי PDF הניתנים להורדה ללא עלות

PowerPoint Presentation

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

ForMenahelHeshbonot

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

Microsoft Word IG Lab - Configure Wireless Router in Windows Vista.docx

ת'' מדריך לבעלי תיבה קיימת במופ ומשתמשים ב Outlook 2003 או doc.2007 לפני שניגש להגדיר את תיבת המייל החדשה, נבצע גיבויי של המיילים ופנקס הכתובות מהחשבו

תוכן הגדרת שאלת רב-ברירה ]אמריקאית[...2 הגדרת שאלת נכון\לא נכון...8 שאלות אמריקאיות 1

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

PowerPoint Presentation

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

שאלהIgal : מערכים דו מימדיים רקורסיה:

Slide 1

מסע מדע ו - מסע ברכב שטח ביבשות רחוקות

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי

Microsoft Word - I900-Tips_and_Tricks

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

Microsoft Word - tips and tricks - wave 5.doc

Slide 1

בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ

Titre du document en police Sodexo

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

ISI

שאלה 2. תכנות ב - CShell

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

מטלב לפיסיקאים שיעור 1

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

פרויקט "רמזור" של קרן אביטל בס "ד מערך שיעור בנושא: "פונקציה" טליה קיפניס והדסה ערמי, מאולפנת צביה פרטים מקדימים על מערך השיעור: השיעור מהווה מבוא לנו

תוצאות סופיות מבחן אלק' פיקוד ובקרה קיץ 2014

Microsoft Word - c_SimA_MoedB2005.doc

ex1-bash

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 313, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר

סדנת חזון משאבי אנוש

מצגת של PowerPoint

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תרגיל 5-1

Microsoft Word - solutions.doc

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

מדריך לחיפוש במאגר JCR Journal Citation Reports מעודכן לדצמבר 2015 כל הזכויות שמורות לתחום היעץ, אוניברסיטת חיפה, הספריה

סדנת תכנות ב C/C++

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

מבוא למדעי המחשב

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

Limit

Microsoft Word B

Microsoft PowerPoint - rec1.ppt

עמוד 1 מתוך 5 יוחאי אלדור, סטטיסטיקאי סטטיסטיקה תיאורית + לוחות שכיחות בדידים/רציפים בגדול מקצוע הסטטיסטיקה נחלק ל- 2 תחומים עיקריים- סטט

Microsoft Word - hedva 806-pitronot-2011.doc

Slide 1

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

Slide 1

PowerPoint Presentation

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

290/402//3 המרתמשובשערעולמילקייםמתקןחדשלתקןקיים רקע: קיימיםארבעהמקורותאפשרייםלמיפוילמסרהמשוב: כשהמסרנקלט עלפיהסכימההמתוארתבמסמךהAPIשלכל מסרומסראליומתי

Microsoft Word - sync_LG.doc

תאריך הבחינה 30

פרויקט שורשים דמות

תוכן העניינים

מבוא לתכנות ב- JAVA תרגול 7

טיפים להצלחה במהלך הבחינה 1. בתחילת הבחינה קראו היטב את כל השאלות וסמנו לעצמכם את השאלות המועדפות על ידכם. קראו כל שאלה לפחות פעמיים, כדי שלא תחמיצו נ

בגרות סוג הבחינה: מדינת ישראל קיץ תשע"ח, 2018 מועד הבחינה: משרד החינוך , מספר השאלון: נוסחאות ונתונים בפיזיקה ל 5 יח"ל נספח: א. משך הבחינה:

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

SFP6603NRE Dolce Stil Novo תנור פירוליטי 60 ס"מ, זכוכית שחורה +A דרגת אנרגיה EAN13: רכיבים בגימור נחושת פונקציות בישול 10 פונקציות ניקוי

PowerPoint Presentation

Microsoft Word - Sol_Moedb10-1-2,4

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

חינוך לשוני הוראת קריאה: נקודת מבט של הערכה: מהן הסוגיות שבהן ידע מחקרי עשוי לסייע בעיצוב מדיניות ועשייה?

תמליל:

מימוש ממשק משתמש ע"י GUIDE שיעור מס' 12: שימוש ב- GUIDE - GUIDE ראשי תיבות של - GUI Design Environment הוא כלי ליצירה חצי-אינטראקטיבית של ממשקי-משתמש. תהליך העבודה עם GUIDE הפעלת GUIDE ליצירת ממשק חדש - להפעיל פקודת guide מחלון הפקודות. לעבודה על ממשק קיים: guide filename.fig עם שם הקובץ הגרפי: guide להפעיל פקודת.open in GUIDE כשהסמן על הקובץ הגרפי בחלון הקבצים, ולבחור context menu או לפתוח שלבי התהליך עיצוב ויזואלי/גרפי: קביעת ממדיו של חלון הממשק וכן ממדיהם ומיקומם של פריטי הממשק. התאמת תכונות העצמים הגרפיים בממשק, באמצעות עורך התכונות. העריכה יכולה לקבוע איך העצמים ייראו )למשל גודל גופן(, אבל בעיקר חשוב לערוך תכונות הקשורות לתגובת העצמים לפעולות המשתמש ולזיהוי העצמים בתוך התוכנית. שמירת הממשק בשם מסוים. אם הממשק הנשמר חדש, המשתמש מתבקש לבחור שם לקבצים. שמירה נעשית ע"י: בחירת תפריט file ואז save או,save as או הפעלת הממשק ע"י לחיצה על כפתור ההפעלה )משולש ירוק בסרגל הכלים(. נוצרים שני קבצים בשם שנבחר: 1. קובץ גרפי )בפורמט מטלב מסוג )fig הכולל הן את העיצוב החזותי וכן תכונות לא-חזותיות של העצמים. 2. קובץ-תוכנית mfile עם תבנית מוכנה לפונקציות ה- callback, שהן פונקציות משניות.subfunctions כתיבת תוכניות ה- callback לתוך התבניות שבקובץ. )זה החלק הלא-אינטראקטיבי, והוא עיקר העבודה(. הפעלת הממשק הגרפי: הרצת קובץ ה- mfile )עם או בלי ארגומנטים של קלט או פלט(. הקשה על כפתור הרצה כאשר הקובץ הגרפי פתוח ב- GUIDE. בניית הקובץ הגרפי הוספת עצמים להוספת עצם לממשק, יש לבחור מסרגל העצמים שבצד שמאל את העצם מהסוג המבוקש ואז: להקיש על העצם בסרגל, ואז לסמן באזור העריכה מלבן שמציין את מימדי העצם ומיקומו, או... עמ' 1 מתוך 8

לגרור את העצם אל אזור העריכה למיקום הרצוי. העצם נוצר בגודל ברירת-מחדל. )אפשר לשנות את גודל העצמים בכל עת(. העצם נוצר עם תכונות ברירת-מחדל. הטקסט המוצג על העצם הוא ברירת המחדל גם של התגית שהעצם יקבל, וגם של הטקסט שיוצג )במקרים שטקסט משויך לעצם(. תגיות הן הבסיס להגדרות ולתכנות בעבודה עם GUIDE ולכן מומלץ לשנות ערכי ברירת-מחדל אלה לשמות משמעותיים למתכנת מייד לאחר יצירת העצם. עורך תכונות עורך תפריטים עורך תוכנית רשימת עצמים שינוי תכונות עצמים שינוי תכונות נעשה ב- Inspector Property שניתן לפתוח באחת מן האפשרויות הבאות: לבחור Property Inspector מתוך Context Menu )הקשה על עכבר ימני( של העצם. לעריכת תכונות החלון הגרפי כולו, יש להקיש על עכבר ימני כאשר הסמן נמצא בשטח העריכה אך לא מעל עצם כלשהו. הקשה כפולה על העצם. כפתור Property Inspector בסרגל הכלים בקצה העליון של המסך. העצם שייפתח עבורו העורך הוא זה שמסומן כ"נבחר". אם אף עצם לא מסומן, העורך ייפתח על תכונות החלון הגרפי. שינוי התגית נעשה ע"י שינוי ערך שדה Tag בעורך התכונות. שימושי התגית בתכנות הממשק:.guihandles של העצם באמצעות handle גישה למזהה מתן שם לפונקציות callback המשויכות לעצם: אם התגית שנבחרה היא Tag אז הפונקציה שמופעלת כאשר המשתמש בוחר בעצם נקראת Tag_Callback הערה: תכונת ה- Callback נקבעת אוטומטית ע"י GUIDE ולכן אין לשנות אותה באמצעות עורך התכונות. עמ' 2 מתוך 8

שינוי ברירות-מחדל ממשק חדש נוצר עם ברירת-מחדל עבור התכונות הכלליות. תכונות אלה הן: האם החלון הגרפי ניתן לשינוי או שממדיו קבועים )ברירת מחדל(. מהם התנאים להעברת הפוקוס לחלון הגרפי של הממשק: כאשר מתבצע Callback )ברירת מחדל( או בתנאים אחרים. :mfile מחדל: שניהם(. אם נוצר )ברירת mfile האם ליצור רק את העיצוב הגרפי או ליצור גם o האם ליצור תבניות עבור פונקציות Callback )ברירת מחדל: "כן"(. o האם כל הפעלה של הממשק פותחת חלון גרפי נוסף, או הפעלה יחידה - singleton )ברירת מחדל הפעלה יחידה(: הפעלה נוספת כאשר הממשק כבר פתוח מעבירה אליו את הפוקוס )ולא פותחת חלון חדש(. o האם להשתמש בסכמת הצבעים של המערכת כרקע )"כן" ברירת מחדל(. אם רוצים לשנות מאפיינים אלה, יש לעשות זאת לפני שמתחילים לעצב את הממשק, ע"י בחירה מתפריט.tools->GUI Options הערה: גם כאשר עובדים במסגרת של יצירה אוטומטית של תבניות עבור,Callbacks ניתן לערוך את ברירת המחדל עבור תכונת Callback ולכתוב במקומה כל דבר שמתאים לתכונה זו, כפי שתואר בשיעור 11. עבודה בצורה זו איננה מומלצת בדרך כלל, אבל עדיפה כאשר תגובת הממשק פשוטה ביותר ואין צורך בהגדרה מיוחדת של פונקציה. עיצוב קובץ הפקודות עבודה עם פונקציות משניות בקובץ אחד קובץ התוכנית שנוצר באופן אוטומטי ע"י GUIDE כולל את החלקים הבאים:.filename פונקציה ראשית בשם הקובץ filename_openingfcn תבנית לפונקציה משנית filename_outputfcn תבנית לפונקציה משנית תבנית לפונקציות משניות, אחת לכל תגית Tag_Callback )אם לכמה עצמים יש אותה תגית, כולם ישתמש באותו.)Callback יש לזכור שהסביבה הקוראת ל- callbacks היא סביבת מטלב הכללית. מאחר שפונקציות משניות אינן מוכרות לסביבה שמחוץ לקובץ שבו הן מוגדרות, מה מאפשר לסביבת מטלב להשתמש בהן כ- Callbacks? המנגנון שתואר בשיעור 11 לשיוך ה- callbacks לעצמים הרלוונטיים לא מתאים לעבודה עם :GUIDE העצמים לא נוצרים ע"י פקודות Uicontrol כחלק מן הפונקציה הראשית בקובץ; הם נוצרים באופן אינטראקטיבי ונשמרים בקובץ הגרפי, כאשר שיוך ה- callbacks נעשה ע"י.GUIDE הפתרון ש- GUIDE מספק קשור לאופן ההפעלה של קובץ התוכנית. התוכנית מגיבה בהתאם למספר הארגומנטים של קלט המועברים לה: 1. אם אין ארגומנטים של קלט: לפתוח את הממשק. 2. אם הארגומנט הראשון הוא מחרוזת תווים והשני הוא מזהה לעצם גרפי :)handle( בהנחה שהמחרוזת היא שם של אחת מפונקציות ה- callbacks, להפעיל את הפונקציה. עמ' 3 מתוך 8

3. אם הארגומנט הראשון הוא מחוזת תווים ויש יותר מ- 3 ארגומנטים של קלט: להעביר את כל הארגומנטים לטיפול של פונקציית-האתחול )כאן לא נפרט על צורת קריאה זו, פירוט נמצא בתיעוד(. אפשרות מס' 1 מתאימה לנאמר קודם על אופן הפעלת הממשק. אפשרות מס' 2 פותרת את הבעיה של זיהוי פונקציות משניות באופן הבא: כאשר משתמשים בברירת-מחדל של יצירה אוטומטית של,callbacks מטלב יוצר תכונת- callback עבור העצם כמודגם בצילום-המסך הבא: ראשית רואים שה- callback היא פונקציה אנונימית שמקבלת שני ארגומנטים של קלט: מזהה לעצם hobject ומידע על האירוע.eventdata זו הצורה הסטנדרטית שבה מטלב מפעיל.callbacks שנית, גוף הפונקציה האנונימית הוא למעשה קריאה לקובץ התוכנית )כלומר לפונקציה הראשית בו(. הארגומנט הראשון הוא מחרוזת תווים שכוללת את התגית שהוצמדה לעצם + התוספת _Callback )שאר הארגומנטים יתוארו בהמשך(. בהתאמה, נוצרת בקובץ הפקודות תבנית לפונקציה בשם זה. התוצאה היא שכאשר הממשק מופעל והעצם הגרפי מייצר אירוע, נקראת הפונקציה הראשית והארגומנט הראשון שמועבר אליה הוא שם ה- callback המתאים. ארגומנט זה מתאים לאפשרות מס' 2 למעלה, ומתבצעת קריאה ל- callback המתאים. הפונקציה הראשית - אין לשנותה הפונקציה הראשית בקובץ, כולל ההסבר על אופן פעולתה )הערות בתחילת הקובץ(, נוצרת באופן אוטומטי ע"י,gui_State הפונקציה מיישמת את המנגנון שתואר למעלה. מלבד איסוף-נתונים ושמירתם במשתנה בשם.GUIDE עיקר התהליך מתבצע באמצעות פונקציה מובנית של מטלב בשם.gui_mainfcn פונקציה זו מבצעת בדיקות שונות ומפעילה את פונקציית ה- callback או מעלה את הממשק, בהתאם לקריטריונים שתוארו למעלה. אתחול הממשק כולל את השלבים הבאים: יצירת החלון הגרפי. ברירת-המחדל היא לעשות זאת ע"י פתיחת הקובץ הגרפי שנשמר. )יש אפשרות נוספת שלא נפרט כאן(. בשלב זה מתבצעת הפוקנציה CreateFcn עבור כל העצמים הגרפיים. הוספת מידע מ- guihandles למידע הנמצא ב- guidata המשויך לחלון הממשק. הפעלת filename_openingfcn )פונקציה זו מאפשרת למתכנת להוסיף פעולות לשלבי האתחול(. הפעלת filename_outputfcn )פונקציה זו מגדירה ארגומנטים של פלט עבור הקובץ הראשי. ברירת המחדל היא ה- handle לחלון הגרפי הכללי(. שינוי בקוד הפונקציה הראשית יפגע בפעולה התקינה של הממשק. מבנה פונקציות ה- callback % --- Executes on button press in Tag. function Tag_Callback(hObject, eventdata, handles) % hobject handle to Tag (see GCBO) % eventdata to be defined in future % handles structure with handles and user תבנית פונקציה callback נראית כך: כאשר Tag הוא ערך התגית המשויכת לעצם. עמ' 4 מתוך 8

בארגומנט handles נמצא כל המידע שניתן לקבל באמצעות פקודת,guihandles בתוספת שדות שהוגדרו ע"י וע"י המשתמש. )עוד על העברת מידע, בהמשך(. בעזרת ארגומנט זה, כל אחת מפונקציות ה- callback GUIDE יכולה לזהות ולגשת לכל אחד מן העצמים בממשק. שני הארגומנטים הראשונים זהים לארגומנטים של callbacks כפי שהוסבר בשיעור 11. דוגמא 1: ממשק פשוט הכולל כפתור-לחיצה אחד ושלושה.radio buttons הממשק ממומש ע"י שני קבצים, d12simplegui h = d12simplegui ו- d12simplegui.m. d12simplegui.fig פתיחת הממשק: פתיחת הממשק וקבלת המזהה לחלון הגרפי h: כל כפתור-רדיו יכול להיות במצב on או.off במצב off ערכו )תכונת )Value שווה לערך תכונת Min ובמצב on ערכו )תכונת )Value שווה לערך תכונת.Max במטלב אין תלות בין שלושת הכפתורים, אולם מקובל להשתמש בכפתורי רדיו כאשר רוצים להראות שרק אחד מהם יכול להיות.on יצירת מצב זה נעשית ע"י תכנות פונקציות ה- callback כך שכל פונקציה ש"מפעילה" את הכפתור עליו המשתמש לחץ, גם "משביתה" את הכפתורים האחרים. לחיצה על כפתור Go רק מציגה בחלון הפקודות הודעה + ערך הארגומנט.handles כלים להעברת מידע בין הפונקציות GUIDE משתמש במנגנון של guidata כדי לשמור מידע, בין השאר על guihandles אבל לא רק. נזכיר את האפשרויות לשמירת מידע שצוינו בשיעור 11: הגדרת כל הפונקציות המשתפות מידע כפונקציות פנימיות של התוכנית הראשית: אפשרות זו לא ישימה כשעובדים עם,GUIDE מאחר שאין לגעת בקוד התוכנית הראשית, ואילו כל ה- callbacks מוגדרות כפונקציות משניות. שמירת המידע המשותף בתכונת UserData שניתן לשייכה לכל עצם גרפי. ישים גם ב- GUIDE. שימוש בעצם מסוג Application Data שניתן לשייכו לכל עצם גרפי. ישים גם ב- GUIDE. שימוש בתכונת guidata אשר משויכת לחלון הגרפי. ניתן להשתמש בתכונה זו גם ב- GUIDE, אבל בזהירות: GUIDE עצמו משתמש בתכונה זו לשמירת handles וכן עוד שדה אחד לפחות.)output( אפשר להוסיף שדות נוספים לצורך שמירת מידע, אבל לא "לדרוך" על המשתנה ולא למחוק שדות קיימים. יש לזכור שלמרות השם handles המשתנה מכיל גם מידע שאיננו מזהים של עצמים גרפיים. כמו-כן יש לעדכן את guidata לאחר כל שינוי שמבוצע ב- handles )בדומה לעדכון UserData או.)Application Data דוגמא 2: ממשק d12ecologygui חוזר על דוגמא 5 בשיעור 11, בהבדלים הבאים: מימוש ע"י.GUIDE מערכת-צירים נוספת לניתוח המידע..1.2 בכל פעם שמתעדכן הגרף במערכת הצירים העליונה, במערכת הצירים התחתונה מוצגת עקומה פרמטרית )תלוי במספר האוכלסיות שנבחרו(. לחיצה על כפתור Height vs. Time מציגה באותה מערכת צירים, במקום זה, גרף של גובה שיא כפונקציה של זמן השיא וכן קו מרוסק שמאפשר למשתמש לציין ערך-סף שמתחתיו שיא לא נלקח בחשבון באנליזה נוספת. לחיצה על כפתור Estimate T גורמת לביצוע והצגה של התאמה ליניארית בין מספר השיא לזמן עמ' 5 מתוך 8

השיא, כאשר נלקחים בחשבון רק השיאים שגובהם מעל ערך-הסף שצוין בשלב הקודם. מכאן מחושב ומוצג )בכותרת( זמן-המחזור של השיאים. נקודות לציון על המימוש בתוכנה: GUIDE מספק תבניות לפונקציות callback של עצמים הנראים בממשק הגרפי הסטטי. עצמים נוספים, למשל קווים שיש לעדכן בהמשך ו/או שמייצרים אירועים, יש להגדיר בגוף הקובץ וכן לכתוב עבורם callbacks ולשייכם לעצמים אלה. כל העקומות מאותחלות בשלב אתחול הממשק, ובהמשך רק מעדכנים אותן. כל האתחולים מתבצעים ב- Function.Opening העברת מידע בין הפונקציות בעזרת Application Data המשויך לחלון הראשי. בכל מצב מוצגים רק העצמים הרלוונטיים. למשל אם בוחרים,Grass+Deer מושבתים העצמים הקולטים מידע על אוכלוסיית האריות בזמן 0=t. בכל פעם שמתעדכן הגרף העליון, כפתור Estimate T מושבת )והוא מופעל רק לאחר לחיצה על.)Height vs. Time עבודה עם תפריטים סוגי תפריטים UImenu תפריט המוצג בסרגל התפריטים שלאורך השפה העליונה של החלון הגרפי. הקשה )עכבר שמאלי( על כותרת התפריט גורמת להצגת הפריטים הכלולים בו. תפריט זה משויך לחלון הגרפי. Uicontextmenu תפריט המשויך לעצם גרפי כלשהו, ואיננו מוצג. הקשה של עכבר ימני על העצם שאליו משויך התפריט, גורמת להצגת הפריטים. כל אחד מפריטי התפריט הוא עצם גרפי המשויך לתפריט. ניתן לבנות תפריט ולשייך את ה"שורש" שלו לתפריט אחר, וכך ליצור תפריטים בעלי כמה רמות. הממשק מגיב לבחירת פריט מסוים בהפעלת פונקציית callback המשויכת לפריט זה. עמ' 6 מתוך 8

העלה או הורד רמה הוסף פריט שנה סדר פריטים פקודות לבניית תפריטים hm = uimenu('pname','pval',...) הגדרת "שורש" ל- UImenu : hm = uimenu('label','file') ציון כותרת לתפריט: hm = uimenu('parent',hfig) ציון החלון אליו ישויך התפריט: hs = uimenu(hm,'label','save mat format') הוספת פריט לתפריט קיים: set(hs,'callback',@savematcallback) שיוך callback לפריט: hc = uicontextmenu הגדרת "שורש" ל- Uicontextmenu : set(hline,'uicontextmenu',hc) שיוך Uicontextmenu לעצם גרפי: הוספת פריטים ל- Uicontextmenu נעשית בצורה זהה ל- Uimenu, כלומר ע"י פקודת uimenu כמתואר למעלה. ניתן לציין תכונות נוספות לתפריטים, למשל מיקום )על החלון הגרפי או על סרגל התפריטים(. למידע נוסף יש לחפש בתיעוד uimenu properties או.uicontextmenu properties בניית תפריט באמצעות GUIDE יש לפתוח את עורך התפריטים ע"י הקשה על הכפתור המתאים בסרגל הכלים. לבחור בלשונית הרצויה: Menu Bar או.Context Menus לבחירת התפריט יש ללחוץ על הכפתור בסרגל הכלים המסומן בכוכבית * )בכל לשונית פעיל רק הכפתור הרלוונטי ללשונית זו(. מומלץ לבחור תגית בעלת משמעות מייד עם יצירת הפריט או התפריט. תפריט Uimenu יופיע בסרגל התפריטים כאשר הממשק יופעל. הוא אינו מופיע במסך העריכה של GUIDE מאחר שסרגל התפריטים איננו חלק מ"תוכן החלון" אלא נחשב לחלק מן ה"מסגרת/כותרת". עמ' 7 מתוך 8

את תפריט Uicontextmenu יש לשייך לעצם הרלוונטי ע"י פקודה, כמתואר בסעיף הקודם. בכל מקרה יש לעשות זאת בשלב האתחול של הממשק )בדרך כלל בפונקציה )Opening function ע"י מציאת המזהה )handle( הן של התפריט והן של העצם, והוספת המזהה של העצם כתכונת Uicontextmenu של העצם. קווים מנחים לעיצוב ממשק משתמש פשטות יש להציג רק מידע נחוץ. עיקרון זה נכון גם למידע המוצג וגם לעצמים לממשק. אם בשלב מסוים חלק מן המידע איננו נחוץ או רלוונטי, יש להעלים אותו. )במקרה של עצמים גרפיים לממשק, יש להשבית את העצמים שאינם רלוונטיים(. מיידיות אם ניתן להציג את התוצאות מייד, יש לעשות זאת. למשל לאחר תזוזה של סליידר יש להציג מייד את התוצאה )אם החישוב לא ארוך מדי( ולא להתנות את ההצגה בלחיצה על כפתור "הצג". גמישות במגבלות המקום בחלון הגרפי וכמות המידע שהמשתמש אמור לספק, יש לאפשר חלופות לקליטת מידע )למשל ע"י תיבת טקסט וגם סליידר(. עקביות יש לעצב ממשק לפעולות דומות באופן חזותי דומה. כמו-כן יש להשתמש בהליכים מוכרים, למשל בקליטת שם-קובץ מן המשתמש יש להפעיל uigetfile מאחר שהעיצוב של ממשק זה מתאים למוסכמות של המערכת. זה עדיף על עיצוב ייחודי של ממשק להצגת רשימת קבצים לבחירה. טיפול בשגיאות יש לחזות עד כמה שניתן מצבים שונים ולהיערך אליהם. במיוחד הממשק אמור לפעול גם אם המשתמש מגיב בדרכים "שגויות". משוב יש לספק למשתמש משוב על מצב המערכת בכל רגע נתון. בדרך כלל המשוב הוא הצגת התוצאות הרצויות. במקרים בהם קליטת הנתונים מורכבת מכמה שלבים, יש לספק רמזים מהו הצעד הבא. כמו-כן יש לתת משוב על מידע שגוי, לא מתאים או לא מספיק. סוף מעשה במחשבה תחילה... לתכנן מראש את הממשק, לפני שמתחילים בעיצוב בפועל: מהן המטלות. איזה מידע רלוונטי בכל שלב של התהליך, מה חשוב להציג בו-זמנית. איזה מידע המשתמש מספק, ובאילו דרכים )אינטראקטיבי, קריאה מקובץ(. אילו עצמים יקלטו מידע מן המשתמש ובאיזו דרך )סליידר, טקסט, כפתור וכו'(. איזה מידע יישמר בסופו של דבר, ובאיזו דרך. איך המערכת תגיב לפעולה של המשתמש בכל מצב שבו היא נמצאת. עמ' 8 מתוך 8