שלום אורח התחבר

Qt/C++ GUI

תיאור הקורס

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

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

דרישות קדם

הקורס מיועד למתכנתי C++. 

0

מבוא ל Qt

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

1

מודל האובייקטים ב Qt

ל Qt היררכיית ירושה המבוססת על מחלקה שנקראת QObject. מבנה זה מאפשר ניהול זיכרון חצי-אוטומטי ותבנית אחידה לטיפול באירועים (בין אם מדובר באירועי ממשק או אירועים מסוגים אחרים). במודול זה נבין את מודל האובייקטים וכיצד בנוי מנגנון ה Signals and Slots. 

2

Core Classes

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

3

Widgets

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

4

כתיבת אפליקציה מלאה

אחרי שהכרנו את הפקדים אנו נשלב אותם לכדי יישום מלא הכולל תפריטים, דיאלוגים תמונות, קבצי הגדרות ואף תרגומים לשפות שונות. Qt מגיעה עם פתרון מובנה לכל מה שנצטרך במעבר ליישום מלא באופן חוצה פלטפורמות  — כך נראה למשל כיצד להשתמש ב Qt כדי לשמור את הגדרות התוכנית ב Registry כשאנו בסביבת חלונות, ובקבצי הגדרות כשאנו בסביבת יוניקס.

5

הצגת נתונים במודל MVC

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

6

עבודה מקבילית: Concurrency and Multi Threading

המודול מציג את שלל הפתרונות ש Qt מספקת לעבודה מקבילית, החל מפתיחת Thread לתהליך נפרד, דרך שימוש ב Worker Thread שנשאר זמין לביצוע מטלות חוזרות על עצמן ומסיים במקביליות באמצעות אלגוריתם Map-Reduce המובנה ב Qt.

7

העברת מידע ברשת

מודול הרשתות מספק לנו אפשרות לעבודה Low Level באמצעות פתיחת Sockets, או High Level באמצעות עבודה עם פרוטוקולים מוכרים, למשל HTTP. אנו נשתמש במודול הרשתות כדי לבנות אפליקציית צ׳אט מבוססת רשת בפרוטוקול TCP, ולאחר מכן נשלב תוכן משרתי ווב בפרוטוקול HTTP.

8

עבודה עם בסיסי נתונים

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