Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Ultra от Июль 09, 2010, 20:36



Название: [Решено]Создание множества виджетов в цикле
Отправлено: Ultra от Июль 09, 2010, 20:36
Добрый вечер.
В QT работаю вторую неделю, обычно пользовался поиском (хватало), но сейчас попал в странную ситуацию и поиск не помогает. Нужно создать множество QLabel, со своими параметрами.
Код:
        for (int i=0;i<domNode.count();i++)
        {
            .....
            QLabel *lNews = new QLabel;
            lNews->setText(e3.text()+"<br>"+e33.text()+"<br><a href='"+e31.text()+"'>Прочитать</a>");
            lNews->setGeometry(QRect(0, 48*i, 326, 46));
            hBoxLayout->addWidget(lNews);
        }
        ui->tbNews->setLayout(hBoxLayout);
Можно ли задавать переменной аля "lNews"+i
Прошу прощение за тупой вопрос...


Название: Re: Создание множества виджетов в цикле
Отправлено: SimpleSunny от Июль 09, 2010, 20:46
Если будет необходимо дальше использовать эти QLabel, то можно использовать QList и потом обращаться как list[ i ]. Если один раз содать и забыть про них, то ваш подход нормальный, только укажите родителя, чтобы самому не заботитьсмя об удалении.


Название: Re: Создание множества виджетов в цикле
Отправлено: Ultra от Июль 09, 2010, 21:19
По непонятной причине на выходе я вижу только 1 qlabel... а qDebug() << i; выдает только цыфру 12...
+

Код:
QWidget::setLayout: Attempting to set QLayout "" on QWidget "tbNews", which already has a layout

Вопрос снят, ошибка была у меня в коде.


Название: Re: Создание множества виджетов в цикле
Отправлено: Sahab от Июль 10, 2010, 09:10
Если будет необходимо дальше использовать эти QLabel, то можно использовать QList и потом обращаться как list[ i ]. Если один раз содать и забыть про них, то ваш подход нормальный, только укажите родителя, чтобы самому не заботитьсмя об удалении.
менеджер компоновки сам присваивает предка.