Russian Qt Forum
Май 17, 2024, 06:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Удаление элемента из QListWidget  (Прочитано 7331 раз)
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. Вот я не могу понять, вроде все указатели инициализированы, откуда этот сегментэйшн фолт Грустный Буду признателен за помощь.

Сейчас обнаружил, что если не вешать виджет на элемент, то всё проходит гладко. Но мне виджет нужен, поэтому помогите, люди добрые...
« Последнее редактирование: Август 19, 2011, 07:37 от maks991 » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Август 19, 2011, 07:44 »

i выходит за пределы массива?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
maks991
Гость
« Ответ #2 : Август 19, 2011, 08:44 »

Не.. Это-то я первым делом проверил. Говорю ж, если не вешать виджет на элемент, то всё нормально. А если вешать, то прога падает с сегфолтом Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Август 19, 2011, 08:59 »

Давай, наверное, минимальный компилябельный пример.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
maks991
Гость
« Ответ #4 : Август 19, 2011, 11:06 »

Фух, нашёл ошибку! Тяжко это было. И зря грешил на QListWidget. Спасибо, что откликнулись.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.04 секунд. Запросов: 19.