Но как написано в справке у 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 у вас?