Вы также можете использовать общий подход, который может работать на различных контейнерах, включая базовую модель вашего списка.
Каждый элемент в списке имеет requestRemoval(Item*)
сигнал и слот removeMe()
, подключите кнопку X к removeMe()
слоту в каждом конструкторе элемента в removeMe()
вы испускаете requestRemoval(this)
сигнал, который подключается к слоту removeHandler(Item*)
в вашем «родителе «объект при создании этого элемента, который получает указатель элемента, который имеет удаление запросов, и удаляет его из используемого базового контейнера.
Как правило, нажатие кнопки удаления приводит к тому, что конкретный элемент отправляет указатель на себя обработчику удаления родителя, который удаляет эту запись.
EDIT: Обратите внимание, что это общий подход, как указано в комментариях ниже, его можно применять без сигналов и слотов, и даже если он будет работать, это не самое эффективное решение в вашем конкретном случае.
Как насчет использования делегатов? ('QStyledItemDelegate') –