Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: webmaxos от Декабрь 05, 2008, 22:08



Название: Как удалить последний элемент в listWidget?
Отправлено: webmaxos от Декабрь 05, 2008, 22:08
использую

Row=ui.listWidget->currentRow();
QListWidgetItem *newItem=ui.listWidget->takeItem(Row);

Но как написано в справке у takeItem дожен быть вышестоящий элемент.

Поэтмоу при удалении последнего элемента листа выдает ошибку.


Название: Re: Как удалить последний элемент в listWidget?
Отправлено: Rcus от Декабрь 06, 2008, 00:35
Код
C++ (Qt)
delete ui.listWidget->currentItem();
когда список пуст currentItem() вернет 0 указатель, а delete проверяет указатели на 0 перед удалением, так что работает.


Название: Re: Как удалить последний элемент в listWidget?
Отправлено: pastor от Декабрь 08, 2008, 14:01
Но как написано в справке у takeItem дожен быть вышестоящий элемент.

Цитировать
QListWidgetItem * QListWidget::takeItem ( int row )
Removes and returns the item from the given row in the list widget; otherwise returns 0.
Items removed from a list widget will not be managed by Qt, and will need to be deleted manually.

Что-то я такого невижу в ассистанте

Поэтмоу при удалении последнего элемента листа выдает ошибку.

Никаких прблем недолжно быть. Сам пользуюсь подобным кодом. Какая версия Qt у вас?