29/03 19:13
Thejuster
Apro un topic magari qualcuno potrebbe darmi una mano.
Sto portando avanti il mio progettino,
Mi sono imbattuto alla fine nel dover per forza creare un editor di nodi.
è un pò una faticata ma sta uscendo bene.
il problema dove sta?
Gli elementi che ho creato sono tutti dinamici ed ovviamente hanno i loro comportamenti.
Qualsiasi oggetto presente.
Dal connettore, alla linea di collegamento ai vari output.
l'oggetto grafico lo inizializzo in questo modo
Quello che sto tendando di fare ora, e quella di fare un override dell'oggetto grafico in modo da gestire il doppio click.
quindi
cosa succede ora?
Se provo a compilare in questo modo, non ho nessun errore.
Ma quando provo a connettere il segnale per poterlo gestire
Ho un errore e mi dice di inseire alla classe del GraphItem la riga Q_OBJECT per la metaprogrammazione.
Appena inserisco questa riga,
:-1: error: debug/scenegenerator.o:scenegenerator.rdata$.refptr._ZTV9GraphItem[.refptr._ZTV9GraphItem]+0x0): undefined reference to `vtable for GraphItem'
ho un errore sulla vtable come se il metodo virtuale non fosse presente.
consigli su come risolvere?
Sto portando avanti il mio progettino,
Mi sono imbattuto alla fine nel dover per forza creare un editor di nodi.
è un pò una faticata ma sta uscendo bene.
il problema dove sta?
Gli elementi che ho creato sono tutti dinamici ed ovviamente hanno i loro comportamenti.
Qualsiasi oggetto presente.
Dal connettore, alla linea di collegamento ai vari output.
l'oggetto grafico lo inizializzo in questo modo
GraphItem *temp = new GraphItem(QPixmap(":/empty.png")); temp->AddConnector(Connector::Output); temp->AddConnector(Connector::Output); temp->ApplyChanges();
Quello che sto tendando di fare ora, e quella di fare un override dell'oggetto grafico in modo da gestire il doppio click.
quindi
signals: void DBCLICK(); protected: void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override { if (event->button() == Qt::LeftButton) { emit DBCLICK(); } QGraphicsObject::mouseDoubleClickEvent(event); }
cosa succede ora?
Se provo a compilare in questo modo, non ho nessun errore.
Ma quando provo a connettere il segnale per poterlo gestire
connect(temp, &GraphItem::DBCLICK, this, [this](GraphItem *item) { });
Ho un errore e mi dice di inseire alla classe del GraphItem la riga Q_OBJECT per la metaprogrammazione.
Appena inserisco questa riga,
:-1: error: debug/scenegenerator.o:scenegenerator.rdata$.refptr._ZTV9GraphItem[.refptr._ZTV9GraphItem]+0x0): undefined reference to `vtable for GraphItem'
ho un errore sulla vtable come se il metodo virtuale non fosse presente.
consigli su come risolvere?
Ultima modifica effettuata da Thejuster 29/03 19:15
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer