Доброго времени суток.
Мне нужно как-то удалять елементы из QListWidget при нажатии на кнопку в добавляемом виджете.
Добавляемые виджеты выглядят вот так:
Добавляю такие виджеты вот таким вот способом:
//mainwindow.cpp
void MainWindow::on_addPlotButton_clicked() {
QListWidgetItem *item = new QListWidgetItem(this->ui->plotInfoList);
this->ui->plotInfoList->addItem (item);
PlotInfoWidget *theItem = new PlotInfoWidget;
item->setSizeHint (theItem->sizeHint ());
this->ui->plotInfoList->setItemWidget (item, theItem);
}
Пытался удалять при нажатии на кнопку минус(скриншот) вот таким вот способом:
//plotinfowidget.cpp
void PlotInfoWidget::on_deleteButton_clicked()
{
delete this;
}
Но при попытке добавить после этого новый елемент выдаёт такую ошибку
Можно добавить еще одну кнопку и удалять выбраные мышкой елементы, но хотелось бы чтоб они удалялись при помощи кнопки на самом виджете.
Прошу вашей помощи в реализации или подбрасывании идей, в Qt начал розбираться недавно так что хотелось бы получить максимально(насколько возможно) розвёрнутый ответ.
Ну, delete this вызывать нельзя никогда: как объект может удалить сам себя, если он в момент вызова занят работой одного из методов, в котором встретился такой вызов? Поэтому и Segmentation Fault. Удаление элементов из QListWidget делается так:
int deletee = ... // найти номер элемента для удаления
delete ui->listWidget->takeItem(deletee);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости