Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Admin от Февраль 13, 2005, 01:05



Название: Удаление из QLayout
Отправлено: Admin от Февраль 13, 2005, 01:05
В Layout можно добавлять, а как оттуда удалять виджеты.
addLayout  - есть, а delLayout нету - почему?


Название: Удаление из QLayout
Отправлено: Lom от Февраль 13, 2005, 11:55
void QLayout::remove ( QWidget * widget )
Removes the widget widget from the layout. After this call, it is the caller's responsibility to give the widget a reasonable geometry or to put the widget back into a layout.


Название: Удаление из QLayout
Отправлено: Lom от Февраль 13, 2005, 11:59
void QLayout::removeItem ( QLayoutItem * item )
Removes the layout item item from the layout. It is the caller's responsibility to delete the item.
Notice that item can be a layout (since QLayout inherits QLayoutItem).

Чтение хелпа творит чудеса ;)


Название: Удаление из QLayout
Отправлено: Admin от Февраль 13, 2005, 12:39
Вот про это можно поподробнее

Цитировать
After this call, it is the caller's responsibility to give the widget a reasonable geometry or to put the widget back into a layout.


Название: Удаление из QLayout
Отправлено: Lom от Февраль 14, 2005, 21:32
А в чем подрбнее?
Данная фраза означает что после удаления из Layout размеры виджета остаются такими же какими они у него были при нахождении в Layout, и о том что автоматически виджет ни в какой другой Layout не перемещается. И менять размеры и перемещать в другие Layout надо самому.


Название: Удаление из QLayout
Отправлено: Admin от Февраль 14, 2005, 21:47
ага спасибо теперь понял


Название: Удаление из QLayout
Отправлено: Garrett от Январь 20, 2006, 15:17
Оживляя давно забытую тему...
Это в какой версии появилось? В 2.3 нет ничего похожего. А вопрос стоит...

добавлено спустя:

 ЗЫ.
Поэкпериментировал. Требовалось следующее - при некоторых условиях виджет подцепляется внутрь layouta, при других - выводится наружу.
для подцепляния работает
widget->reparent(...)
layout->add(widget)

а для отцепляния -
layout->removeChild(widget)
widget->reparent()