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

גרף האוביקטים ו QObject

אורך הפרק כ-7 דקות

 

ל QObject יש מספר פונקציות הקשורות לעץ האוביקטים:

  1. הפונקציה QObject::children מחזירה את רשימת הילדים של אוביקט מסוים. בתוכנית הדוגמא שלנו נוכל להוסיף את שורת ההדפסה הבאה לקוד כדי להיווכח שאכן לאוביקט המסך יש 3 ילדים:
qDebug() << "Widget w has: " << w.children().size() << " children";
  1. הפונקציה QObject::findChildren משמשת לאיתור ילדים לפי שם המחלקה. מעבירים לה את שם המחלקה כמחרוזת ומקבלים רשימה של כל הילדים מסוג מסוים. אפשרות יותר מקובלת היא להשתמש ב Template וכך הרשימה שחוזרת כבר מגיעה מהסוג הרצוי:
// get all QPushButton children of a widget
QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>();

// get all QPushButton that are direct children of widget
QList<QPushButton *> childButtons = parentWidget.findChildren<QPushButton *>(QString(), Qt::FindDirectChildrenOnly);
  1. הפונקציות QObject::parent ו QObject::setParent משמשות לאיתור ושינוי ההורה של אוביקט מסוים.