Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt4] Как удалить Layout, Help 
:(
    Опции темы
dix75
Дата 23.5.2010, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Добрый день!

Возникла ситуация при которой необходимо динамически менять GUI интерфейс для некоторого компонета.
реализовал так:
- при нажатие на кнопку на форму добавляется лайоут и соответсвующий интерфейс.
- при нажатие на другую кнопку автоматически этот интерфейс должен уничтожаться и создаваться новый другой.

Но как удалить этот интерфейс имея только указатель на виджет содержащий лайаут? 


--------------------
save your mind
PM MAIL   Вверх
Дшпыук
Дата 23.5.2010, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

Репутация: нет
Всего: 1



Нужно именно уничтожать?.. Может можно просто скрыть?... Делай кнопку chekcable и по состоянию (включена\выключена) устанавливай видимость лайоута.
Почитай " Qt 4 GUI программирование на C++" ( Jasmin Blanchette & Mark Summerfield) там был такой пример... 

PM MAIL ICQ   Вверх
dix75
Дата 23.5.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Нет именно удалить.
Скрывать не получается т.к. при добавлении нового лайаута программа ругается, и указывает на то что уже оди лайаут есть


--------------------
save your mind
PM MAIL   Вверх
djamshud
Дата 23.5.2010, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



Если лайот установлен как основной (top-level) для виджета, то Qwidget::layout().


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
dix75
Дата 24.5.2010, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Пробовал я его удалять

Код

delete Qwidget::layout()


Но он все равно не удаляется




--------------------
save your mind
PM MAIL   Вверх
djamshud
Дата 24.5.2010, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



Он то удаляется. А элементы в нем - нет. Их нужно скрыть (и удалить?). И точно ли это тот самый лайот?

Когда мне нужно на одном виджете иметь возможность показывать разное содержимое, я организую на нем один лайот, в который напихиваю все необходимые "страницы", которые потом и показываю методом "скрыть все виджеты из лайота, показать нужный". Для удобства организовал эту куралесицу в класс. Если нужно, могу дать исходник.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
borisbn
Дата 24.5.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



А QStackedLayout или QStackedWidget тебя не устроит ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
dix75
Дата 6.6.2010, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: 1
Всего: 1



Цитата(djamshud @  24.5.2010,  12:41 Найти цитируемый пост)
Он то удаляется. А элементы в нем - нет


Вряд ли. Ведь я использую лайоут как родителя для всех виджетов размещенных на нем.

Цитата(djamshud @  24.5.2010,  12:41 Найти цитируемый пост)
Когда мне нужно на одном виджете иметь возможность показывать разное содержимое, я организую на нем один лайот, в который напихиваю все необходимые "страницы", которые потом и показываю методом "скрыть все виджеты из лайота, показать нужный". Для удобства организовал эту куралесицу в класс. Если нужно, могу дать исходник.

Такой прием будет необходим, когда небольшое кол-во страниц.
 У меня их более 50 и пользователь может посмотреть только одну.
И создавать все 50 страниц крайне неразумно и по времени и по ресурсам.
Проще удалить и созать новую заново.


Это сообщение отредактировал(а) dix75 - 6.6.2010, 08:55


--------------------
save your mind
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1157 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.