Название: Помогите с созданием неограниченного числа QLabel Отправлено: Chester от Январь 19, 2010, 16:08 Доброго времени суток!!!!
Нужно создать такое количество QLabel, сколько строчек в таблице БД...т.е. чтобы в этих label-ах были данные из таблицы и чтобы в дальнейшем можно было бы к ним обращаться Делаю таким образом: Код только как теперь к ним обратиться?? Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: BRE от Январь 19, 2010, 16:21 Не уверен в удачности такого решения... но
Искать QLabel по имени можно используя QObject::findChildren: QList<QLabel*> labels = findChildren<QLabel*>( "label_1" ); Получайшь список всех меток с нужным именем. Для чего использовать setGeometry? Почитай на тему Layout Management. Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: crossly от Январь 19, 2010, 17:34 поясни подробнее ... для чего к ним обращаться... как правило лэйбл используется только для отображения..
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: whirlwind от Январь 19, 2010, 17:51 в принципе, можно в том же QList<QLabel*> запомнить, потом по индексу получать нужный указатель
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: DS_tm от Январь 19, 2010, 18:29 Нет смысла в установке имени, лучший вариан использовать QList<QLabel *> если последовательность не меняеться (и для доступа использовать индекс) или QHash<int, QLabel *> (и для доступа использовать ид).
По поводу расположения надо использовать вертикальный лайоут. Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: ax от Январь 19, 2010, 19:05 *upd*
Возможны проблемы с производительностью. Не быстрые операции - new QLabel и особенно QLabel.setText("Какойто html"). При большом к-ве label будет заметно. Может на QGraphicsScene организовать? Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: MoPDoBoPoT от Январь 19, 2010, 19:38 А чем MVC не устраивает?
[оффтоп] Код dohod->rowCount() будет высчитываться при каждой итерации, лучше посчитать один раз до цикла: Код [/оффтоп] Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: crossly от Январь 19, 2010, 19:50 если заглянуть в исходники то расчетов там как таковых нету.... row()+1 и всего то...
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: DS_tm от Январь 20, 2010, 10:27 если заглянуть в исходники то расчетов там как таковых нету.... row()+1 и всего то... OFFTOPIC: Маловолнующий фактор). Этика есть этика. В свою очередь предложу вариант в одну строчку, которым пользуюсь постоянно, в независимости от сложности функции в условии(ведь реализация функции всегда может быть изменена). Код
Исключение из привил, при условии, что count используеться за приделами цикла, тогда использую вариант с заранее определенной переменой. Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: niXman от Январь 20, 2010, 10:41 а самое интересное это то, что ТС так ни разу не отписался. цирк да и только ;)
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: Chester от Январь 20, 2010, 13:43 Спасибо всем за ответы...Я так понимаю,что если у меня,например, есть виджеты,которые отличаются последней цифрой в имени: row_1, row_2, row_3 и т.д.,то я никак в цикле не могу обратиться к ним :-((
Например,сделать что-то типо Код
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: crossly от Январь 20, 2010, 14:43 тут бы я отправил читать литературу по с++
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: Chester от Январь 20, 2010, 14:52 Я понимаю,что так нельзя сделать ))))
Я имею ввиду как можно в таком случае в цикле обратиться к конкретному виджету...а пример конечно неудачный Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: Kolobok от Январь 20, 2010, 15:27 Использовать QLabel's для отображения таблицы БД это изврат. Можно узнать о причинах, побудивших к такому решению. Чем QTableView не устраивает?
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: crossly от Январь 20, 2010, 15:29 Я понимаю,что так нельзя сделать )))) по objectname....Я имею ввиду как можно в таком случае в цикле обратиться к конкретному виджету...а пример конечно неудачный Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: Marat(Qt) от Январь 20, 2010, 19:37 Код: QVector<QLabel *> vec; Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: lit-uriy от Январь 20, 2010, 20:49 вообще советы, по моему, зряшние. Если человека не устраивает табличное представление, то надо смотреть в сторону QDataWidgetMapper, а куча меток связанных с БД, это предел извращения.
Название: Re: Помогите с созданием неограниченного числа QLabel Отправлено: SABROG от Январь 20, 2010, 20:54 Если нужно выводить только текст без рюшечек и прочих вкусностей QLabel'a, то тут хватит связки CustomWidget + QStringList + paintEvent() + drawText(). Обращаться к элементам соответственно через контейнер QStringList, можно конечно и через QVariantList замутить. И рисовать этот текст как душе вздумается, хоть вверх ногами, хоть в столбик, хоть с viewport'ом и скроллбарами. Не зная задачи не дать конкретного совета.
Цитировать а пример конечно неудачный Так это пример или задача такая? В итоге всё сводиться к тому, чтобы обратиться к случайному элементу на виджете и БД тут ни при чем? |