Sono un principiante nell'utilizzo di Qt framework. Non sono sicuro di dove sto andando male. Ho provato a guardare molti materiali correlati, ma non riuscivo ancora a capirlo.QObject :: connect: nessun segnale simile durante il collegamento dei segnali qml in C++ Qt 5.3
Sto ricevendo "QObject :: connect: nessun errore di questo tipo .." mentre ho dichiarato un segnale in un file qml.
Ecco il codice:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
//QDeclarativeView view;
QQmlApplicationEngine engine;
testclass dsc;
QQmlComponent component(&engine, QUrl(QStringLiteral("qrc:///test.qml")));
while(component.isLoading());
if (component.isError()) {
qWarning() << component.errors();
}
QObject *object = component.create();
QQuickItem *item = qobject_cast<QQuickItem*>(object);
QObject::connect(item,SIGNAL(dsa(QVariant)),&dsc,SLOT(testslot(QVariant)));
QObject::connect(&dsc,SIGNAL(dummysignal(QVariant)),&dsc,SLOT(testslot(QVariant)));
dsc.dummysignal(&dsc);
qDebug("Entered :");
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
return app.exec();
}
file QML: test.qml
Item {
width: 800
height: 500
signal dsa(var obj)
SystemPalette { id: palette }
}
classe Test: testclass.cpp
#include <QObject>
class testclass: public QObject
{
Q_OBJECT
public:
explicit testclass(QObject *parent = 0);
signals:
void dummysignal(QVariant);
public slots:
void testslot(QVariant);
};
io sono sempre questo errore:
QObject::connect: No such signal test_QMLTYPE_0::dsa(QVariant) in ..
Grazie per il vostro aiuto. Ho fatto riferimento a questo documento per scrivere la parte iniziale del codice che proveniva da QT e lì usano var nell'esempio anziché nella variante. http://qt-project.org/doc/qt-5/qtqml-cppintegration-interactqmlfromcpp.html – atin