Если вы хотите гарантировать удаление, то используйте умные указатели, как shared_ptr к примеру.
shared_ptr - Этот умный указатель разрешает объекту иметь несколько владельцев, а когда все владельцы уничтожаются, уничтожается и объект. Такое поведение достигается за счёт наличия специального счётчика ссылок внутри std::shared_ptr. Каждый раз, когда такой указатель копируется, счётчик инкрементируется, а когда один из указателей уничтожается – декрементируется. В момент, когда счётчик достигает нуля, объект уничтожается.
Цитата с сайта proglib.io - "https://proglib.io/p/umnye-ukazateli-v-c-2021-08-26";
void CustomRectItem::fkn_problems()
{
shared_ptr<QGraphicsRectItem>data = make_shared<QGraphicsRectItem>();
data->setParentItem(this);
}
Вы в Qt, поэтому лучше использовать Qt-шные библиотеки:
https://doc.qt.io/qt-6/qshareddatapointer.html