Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: maks991 от Август 19, 2011, 07:29



Название: Удаление элемента из QListWidget
Отправлено: maks991 от Август 19, 2011, 07:29
Проблема такая: не могу удалить элемент из QListWidget. При создании элемента я делаю примерно так:
Код:
QListWidget* list = new QListWidget(parent);

MyWidget* myWidget = new MyWidget();
QListWidgetItem* item = new QListWidgetItem(list);
list->setItemWidget(item, myWidget); // Вешаю виджет на элемент
myWidgets.push_back(myWidget); // Складирую виджеты на элементах в списке (может это вам пригодится)
Вот так. А при удалении делаю, как сказано в документации.
Код:
QListWidgetItem* item = list->takeItem(i); // На этой строке программа валится
delete item;
Так вот, на вышеобозначенной строчке программа валится, отладчиком я ушёл сильно внутрь и в итоге получил Segmentation fault. Вот я не могу понять, вроде все указатели инициализированы, откуда этот сегментэйшн фолт :( Буду признателен за помощь.

Сейчас обнаружил, что если не вешать виджет на элемент, то всё проходит гладко. Но мне виджет нужен, поэтому помогите, люди добрые...


Название: Re: Удаление элемента из QListWidget
Отправлено: Пантер от Август 19, 2011, 07:44
i выходит за пределы массива?


Название: Re: Удаление элемента из QListWidget
Отправлено: maks991 от Август 19, 2011, 08:44
Не.. Это-то я первым делом проверил. Говорю ж, если не вешать виджет на элемент, то всё нормально. А если вешать, то прога падает с сегфолтом :(


Название: Re: Удаление элемента из QListWidget
Отправлено: Пантер от Август 19, 2011, 08:59
Давай, наверное, минимальный компилябельный пример.


Название: Re: Удаление элемента из QListWidget
Отправлено: maks991 от Август 19, 2011, 11:06
Фух, нашёл ошибку! Тяжко это было. И зря грешил на QListWidget. Спасибо, что откликнулись.