Я предполагаю, что scene-> addPolygon возвращает QGraphicsPolygonItem, который является базовым классом вашей специализации. Вам понадобится динамическое приведение, поскольку вы можете безопасно выполнять преобразование, поднимаясь вверх по иерархии, а не вниз.
GridHex* poly = dynamic_cast<GridHex*>(scene->addPolygon(QPolygonF(vector_of_QPointF)));
if (poly != NULL) {
// You have a gridhex!
}
РЕДАКТИРОВАТЬ: Хотя мой ответ поможет с вашей проблемой конверсии, как вы можете гарантировать, что сцена создает ваши объекты GridHex? Планируете ли вы создать подкласс объекта сцены и вернуть ваши объекты GridHex?
Ваш подкласс QGraphicsScene переопределит addPolygon, чтобы сделать что-то вроде:
// Call the base class
QGraphicsPolygonItem* result = QGraphicsScene::addPolygon(vectorOfPoints);
// Return your stuff
return new GridHex(result);