| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > удаление layout'ов из widget'ов |
| Автор: becks 22.5.2012, 11:58 | ||
| Подскажите еще по такому вопросу. В зависимости от значения QComboBox создавать в QGroupBox динамически некоторые виджеты (QLineEdit, QLabel). Добавляю их в layot, у QGroupBox устанавливаю этот layot.
Как при изменении значения QComboBox грамотно почистить\заменить\удалить layot у QGroupBox. Спасибо. |
| Автор: _GRIN_ 22.5.2012, 12:36 |
| проще всего сами виджеты (которые в лайоут засунуты) (прятать/показывать (QWidget::setVisible(bool)) или удалять) - а лайоут опять же сам всё отобразит волшебным образом =) удалить лайот у виджета можно задав ему нулевой лайоут QWidget::setLayout(0); - правда за всю практику мне этого ни разу не требовалось - ты хочешь странного =) |
| Автор: bsa 22.5.2012, 13:52 |
| Делаешь внутри QGroupBox HBoxLayout, затем в него добавляешь QWidget'ы по количеству возможных значений QComboBox. Делаешь их скрытыми. При изменении QComboBox скрываешь текущий, показываешь новый. И ничего удалять не надо (удаление/создание виджетов несколько фрагментирует кучу). |
| Автор: math64 22.5.2012, 14:13 |
| Вот моя тема по пожожему вопросу (используется QFormLayout, с QVBoxLayout аналогично): http://forum.vingrad.ru/forum/topic-347379/kw-qformlayout-qdatawidgetmapper-qsqltablemodel.html Если число пунтов в QComboBox небольшое, можно использовать QStackedLayout. Сигнал QComboBox::currentIndexChanged() соединяется со слотом QStackedLayout::setCurrentIndex(). |
| Автор: becks 22.5.2012, 16:38 |
| Большое спасибо. Благодаря вашей помощи сделал. |