| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Динамическое создание компонентов |
| Автор: HomerJSimpsoN 5.2.2012, 19:23 | ||
| Суть вопроса следующая: В БД хранится таблица, которая описывает количество полей, их заголовок и имя на форме. Есть форма. Точнее - формы нет. Она создается динамически. На эту форму посредством setLayout() я кладу QVBoxLayout. Далее на него начинаю класть с помощью addWidget() предварительно созданный компонент в соответствии с описанием в БД. К сожалению этот компонент не появляется и выводится чистая формочка. Привожу текст процедуры
Я явно что то упускаю. Прошу помощи =) Заранее спасибо! |
| Автор: HomerJSimpsoN 5.2.2012, 19:57 |
| Хммм)) Ответ - найден. Там нужно вызывать дополнительно метод show() к главному виджету окна. Появился другой вопрос из этой же оперы =) У меня динамически создается форма, туда закидывается некоторое число компонентов. Это число, с одной стороны, может быть достаточно велико, посему, чтобы избежать наложения их друг на друга, я создаю скролл бар. С другой стороны - это число может быть и 1 - 2. Размер формы - не важен, т.е. тоже от очень небольшой, до всего экрана. На данный момент я создал QHBoxLayout, засунул туда справа скролл бар, а слева - QVBoxLayout. В последний - пихаю компоненты. Как сами понимаете, получается не очень красиво. Посему прошу подсказать, какой компонент-компоновщик лучше использовать для этого дела... Чтоб его еще и можно было привязать к скролл бару и скроллить вниз-вверх к недуступным объектам... Желательно подсказать, как еще и привязку осуществить ^_^ Спасибо! |
| Автор: _GRIN_ 6.2.2012, 18:36 |
| Убери свой скролбар. Изначальный компонент запихни в QScrollArea |
| Автор: HomerJSimpsoN 6.2.2012, 18:38 |
| Спасибо. Проблему решил, буквально минут 15 назад... Всего лишь навсего забыл изменить размер слоя, на который кладу элементы =) Глупо =( |