| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4] Как удалить Layout |
| Автор: dix75 23.5.2010, 10:27 |
| Добрый день! Возникла ситуация при которой необходимо динамически менять GUI интерфейс для некоторого компонета. реализовал так: - при нажатие на кнопку на форму добавляется лайоут и соответсвующий интерфейс. - при нажатие на другую кнопку автоматически этот интерфейс должен уничтожаться и создаваться новый другой. Но как удалить этот интерфейс имея только указатель на виджет содержащий лайаут? |
| Автор: Дшпыук 23.5.2010, 10:55 |
| Нужно именно уничтожать?.. Может можно просто скрыть?... Делай кнопку chekcable и по состоянию (включена\выключена) устанавливай видимость лайоута. Почитай " Qt 4 GUI программирование на C++" ( Jasmin Blanchette & Mark Summerfield) там был такой пример... |
| Автор: dix75 23.5.2010, 11:20 |
| Нет именно удалить. Скрывать не получается т.к. при добавлении нового лайаута программа ругается, и указывает на то что уже оди лайаут есть |
| Автор: djamshud 23.5.2010, 11:25 |
| Если лайот установлен как основной (top-level) для виджета, то Qwidget::layout(). |
| Автор: dix75 24.5.2010, 09:16 | ||
Пробовал я его удалять
Но он все равно не удаляется |
| Автор: djamshud 24.5.2010, 12:41 |
| Он то удаляется. А элементы в нем - нет. Их нужно скрыть (и удалить?). И точно ли это тот самый лайот? Когда мне нужно на одном виджете иметь возможность показывать разное содержимое, я организую на нем один лайот, в который напихиваю все необходимые "страницы", которые потом и показываю методом "скрыть все виджеты из лайота, показать нужный". Для удобства организовал эту куралесицу в класс. Если нужно, могу дать исходник. |
| Автор: borisbn 24.5.2010, 14:39 |
| А http://doc.qt.nokia.com/4.6/qstackedlayout.html или http://doc.qt.nokia.com/4.6/qstackedwidget.html тебя не устроит ? |