На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Поведение FindChildren. , Qt Creator v.3.5.x.
    Есть gridLayout, в нем verticalLayout'ы, а в нем - horizontalLayuot'ы с чекбоксами. Не могу привести код, но у меня возвращает 0, если использовать findChildren gridLayout'а.

    Как создать коллекцию всех-всех чекбоксов в gridLayout, независимо от количества промежуточных родителей? При условии, что и количество, и вложенность лайоутов внутри изменчиво.
    Сообщение отредактировано: Сергей85 -
      Все лайауты имеют свои лайаут-айтемы. Которые могут быть как лайауты, так и виджеты.

      Количество их можно узнать по:
      ExpandedWrap disabled
        int QLayout::count() const

      Перебрать можно в цикле по индексу, используя:
      ExpandedWrap disabled
        QLayoutItem *QLayout::itemAt(int index) const

      Для того, чтобы понять, что перебираемый элемент лайаут или чекбокс, используем:
      ExpandedWrap disabled
        const char *QMetaObject::className() const
        Цитата JoeUser @


        Существует ли готовый код? Не хочу изобретать велосипед.

        А можно ли проще: получить все элементы формы - и потом из них просто чекбоксы выдергивать?
          Цитата Сергей85 @
          А можно ли проще: получить все элементы формы - и потом из них просто чекбоксы выдергивать?

          Можно. Просто забей на дизайнер и конструируй форму в конструкторе или методах позже. В классе формы заведи поле QMap<QString, QWidget*>. Как только создал элемент управления - "регистрируй" его в этом поле. Ну а дальше ... в любой момент имеешь доступ к любому полю. Плюс к тому - в деструкторе сможешь грамотно разрушить объекты, созданные в хипе.

          Встроенных "списков" элементов управления формы - нет такого в Qt, ибо построение формы идет в виде дерева контейнеров, содержащих вложенные контейнеры и/или элементы управления.
            Решил иначе. Использование фреймов, а в фрейме - столько лайоутов, сколько нужно именно для выравнивания элементов.

            В случае с формой FindChildren вернет абсолютно все элементы, в случае с фреймом - только элементы фрейма.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0227 ]   [ 17 queries used ]   [ Generated: 28.03.24, 21:37 GMT ]