【发布时间】:2014-11-17 12:57:31
【问题描述】:
我是使用 Qt 框架的新手。我不确定我哪里出错了。看了很多相关的资料还是没搞明白。
当我在 qml 文件中声明一个信号时,我收到“QObject::connect: No such signal error..”。
代码如下:
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();
}
qml 文件:test.qml
Item {
width: 800
height: 500
signal dsa(var obj)
SystemPalette { id: palette }
}
测试类: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);
};
我收到此错误:
QObject::connect: No such signal test_QMLTYPE_0::dsa(QVariant) in ..
【问题讨论】:
标签: c++ qt qml signals-slots