Так что у меня проблемы с удалением QGraphicsPixMapItem. Я добавляю его в свое представление, устанавливая его родительский, так что я ожидал, что если я изменю родителя на nullptr, он будет удален, но он не сработает. Я читал в Интернете, что я мог бы также использовать функции, такие как скрыть, но когда я использую их, программа вылетает. Какой лучший способ исправить это?
Кстати, я уверен, что код вызывает сбой при вызове функции скрытия, а остальная часть моего кода исправна.
Левый щелчок должен добавить 'stamlid' (QGraphicsPixMapItem) к QGraphicsEllipsItem (this). И он должен быть удален с правой кнопкой мыши.
void Vakje::mousePressEvent(QGraphicsSceneMouseEvent *event) {
Speler *speler = m_spel->getAanDeBeurt();
if (event->button() == Qt::LeftButton && m_stamlid == nullptr) {
m_stamlid = speler->getVrijeStamleden()[0]; //stamlid van speler dat niet op bord staat
m_stamlid->getStamlidView()->setParentItem(this);
m_stamlid->setOpBord(true);
m_stamlid->getStamlidView()->setVisible(true);
speler->getSpelerView()->updateMembers();
} else if (event->button() == Qt::RightButton && m_stamlid != nullptr) { //verwijder pion
m_stamlid->setOpBord(false);
m_stamlid->getStamlidView()->setParentItem(nullptr);
m_stamlid = nullptr;
speler->getSpelerView()->updateMembers();
}
}