Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ QListWidget

Автор: demaker 4.3.2013, 10:27

Как в QListWidget удалить item, т.е QListWidgetItem?

Автор: Алексей1153 4.3.2013, 10:30

нужно всего лишь заглянуть в хелп. Пробуй делать это перед созданием таких постов :D


void removeItemWidget ( QListWidgetItem * item )

Автор: demaker 4.3.2013, 10:36

Так удаляет виджет, который в item, а не сам item.

Removes the widget set on the given item.

Автор: Алексей1153 4.3.2013, 10:43

ну если ты его создавал при помощи new , то и удали при помощи delete


Автор: lanz 4.3.2013, 10:47

Ненене!

QListWidgetItem *item = view->takeItem (id);
delete item;

Автор: demaker 4.3.2013, 10:47

:) точно, спасибо.
А то я искал deleteLater, а его нет QListWidgetItem

Автор: Авварон 4.3.2013, 10:49

ой, я слоупок:(

Автор: demaker 4.3.2013, 10:57

А еще такой вопрос.

Если я создаю
и делаю привязку к

QListWidget*lw = new QListWidget;
QListWidgetItem*lwi = new QLIstWidgetItem(lw);


потом
делаю

 delete lwi;


ошибки не будет

Автор: Алексей1153 4.3.2013, 11:10

lanz, так можно, конечно, только если нет разницы, полетят ли при этом всякие сигналы ) Если же remove , потом delete - то можно точно ограничить этот момент

demaker, QListWidgetItem в своём деструкторе сам должен отцепиться от родителя. Также, согласно канонам Qt, если удалить родительский виджет, он всех чайлдов удалит

И это всё, конечно, удобно, но не всегда :) Иногда, когда нужно, эту самодеятельность стОит пресекать

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)