Название: Перебрать все элементы слоя... Отправлено: Nub от Марта 29, 2009, 13:04 есть QVBoxLayout и на нем куча QLineEdit'ов, как их все перебрать циклом чтобы изменить некоторые свойста?
Название: Re: Перебрать все элементы слоя... Отправлено: m_ax от Марта 29, 2009, 13:24 Если лэйбелов, реально целая куча, то возможно правильнее будет организовать список QList на указатели этих объектов:
Код: private: Затем в конструкторе вставляешь их в свой QVBoxLayout: Код: QVBoxLayout *labelLayout = new QVBoxLayout; Код: m_arrLayout[i]->set..... Название: Re: Перебрать все элементы слоя... Отправлено: Rcus от Марта 29, 2009, 13:25 Итерация по QLayoutItem через QLayout::itemAt(), QLayout::count(), апкаст QLayoutItem::widget() при помощи qobject_cast?
Название: Re: Перебрать все элементы слоя... Отправлено: m_ax от Марта 29, 2009, 13:25 Ой, пардон, там же QlineEdit ы ;D Ну это не принципиально
Название: Re: Перебрать все элементы слоя... Отправлено: Sergey B. от Марта 29, 2009, 13:51 Всё намного проще.
*.h Код: QList <QLineEdit *> m_list; *.cpp Код: m_list = findChildren<QLineEdit *>(); А дальше обычный перебор списка с помощью итераторов. Название: Re: Перебрать все элементы слоя... Отправлено: Nub от Марта 29, 2009, 14:56 m_list = findChildren<QLineEdit *>();
так работает но получает список всех QLineEdit'ов на виджете, а если делаю m_list = ui->leLayout->findChildren<QLineEdit *>(); то получаю пустой список. :( |