LINUX.ORG.RU

Qt4.8 и Список дочерних виджетов

 


0

1

Подскажите люди добрые, как в Qt прочесть список виджетов и их типы, расположенных допустим на виджете toolBox? Т.е. его дети :).

Так же вопрос - как обратится к каждому из них?

Примеры в Qt docs не понял.

Deleted
Ответ на: комментарий от visual

Вот, к примеру, как я менял шрифт у всех виджетов на форме

 QObjectList children = wid->children();
    foreach(QObject * child, children) {
        if (child->isWidgetType()) {
            QFont font = ((QWidget *)child)->font();
            font.setPointSize(size);
            ((QWidget *)child)->setFont(font);
            changeFontsSize(((QWidget *)child), size);
        }
    }

Вот так, как я понимаю, можно узнать тип

  ((QWidget *)child)->metaObject()->className();      
keyran ★★
()
Ответ на: комментарий от unC0Rr

А зачем здесь qobject_cast? Нам вроде метаинформация не нужна, и так мы проверяем, виджет у нас, или нет. Разве что вместо проверки на виджет проверять qobject_cast на 0. Но суть та же вроде.

keyran ★★
()
Ответ на: комментарий от keyran

Просто как более идеоматичное средство

unC0Rr ★★★★★
()
Ответ на: комментарий от keyran

суть такая же, но код будет куда чище

 QObjectList children = wid->children();
    foreach(QObject * child, children) {
        QWidget *childWidget = qobject_cast<QWidget*> (child);
        if (childWidget) {
            QFont font = childWidget->font();
            font.setPointSize(size);
            childWidget->setFont(font);
            changeFontsSize(childWidget, size);
        }
    }

frozenix ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.