Je dessine des polygones à l'aide de la structure Graphics View. J'ai ajouté un polygone à la scène avec ceci:Qt - conversion non valide en classe enfant
QGraphicsPolygonItem *poly = scene->addPolygon(QPolygonF(vector_of_QPointF));
poly->setPos(some_point);
Mais je dois mettre en œuvre un comportement personnalisé comme la sélection, la souris sur l'indicateur, et d'autres choses similaires sur l'élément graphique. Donc, je déclarais une classe qui hérite QGraphicsPolygonItem:
#include <QGraphicsPolygonItem>
class GridHex : public QGraphicsPolygonItem
{
public:
GridHex(QGraphicsItem* parent = 0);
};
GridHex::GridHex(QGraphicsItem* parent) : QGraphicsPolygonItem(parent)
{
}
Ne pas faire beaucoup avec cette classe jusqu'à présent, comme vous pouvez le voir. Mais ne devrait pas remplacer QGraphicsPolygonItem avec mon travail de classe GridHex? Ceci est de lancer une "conversion non valide de 'QGraphicsPolygonItem *' à 'GridHex *'" erreur:
GridHex* poly = scene->addPolygon(QPolygonF(vector_of_QPointF));
Qu'est-ce que je fais mal?
Oh oui, je suppose que je fais tout ce qui est faux ici. Je me familiarise un peu avec le cadre. Je n'ai pas pensé à sous-classer QGraphicsScene avant, mais c'est ce que je vais devoir faire. –
Donc, si je veux ajouter des éléments personnalisés à une scène, je dois sous-classer QGraphicsScene pour pouvoir accepter mes objets personnalisés? Comment dois-je définir une sous-classe QGraphicsScene pour pouvoir y ajouter mes éléments personnalisés? –