Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QML与C+通信+; 我在QML与C++通信方面遇到了问题。我已经完成了使示例代码正常运行所需的所有步骤。在这个小例子上花了几个小时之后,它归结为一条错误消息,我简直无法摆脱: ./input/main.cpp:18: error: no matching function for call to 'QObject::connect(QObject*&, const char*, Input*, const char*)' &input, SLOT(cppSlot(QString))); ^_C++_Qt_Qml - Fatal编程技术网

QML与C+通信+; 我在QML与C++通信方面遇到了问题。我已经完成了使示例代码正常运行所需的所有步骤。在这个小例子上花了几个小时之后,它归结为一条错误消息,我简直无法摆脱: ./input/main.cpp:18: error: no matching function for call to 'QObject::connect(QObject*&, const char*, Input*, const char*)' &input, SLOT(cppSlot(QString))); ^

QML与C+通信+; 我在QML与C++通信方面遇到了问题。我已经完成了使示例代码正常运行所需的所有步骤。在这个小例子上花了几个小时之后,它归结为一条错误消息,我简直无法摆脱: ./input/main.cpp:18: error: no matching function for call to 'QObject::connect(QObject*&, const char*, Input*, const char*)' &input, SLOT(cppSlot(QString))); ^,c++,qt,qml,C++,Qt,Qml,我读了之前的一些文章,仔细检查了所有内容,显然所有内容都是正确的。详情如下: /来源/main.cpp #include <QtGui/QGuiApplication> #include <QtQml/QQmlApplicationEngine> #include <QtQml/QQmlEngine> #include <QQuickWindow> #include <QtDeclarative> #include <QObjec

我读了之前的一些文章,仔细检查了所有内容,显然所有内容都是正确的。详情如下:

/来源/main.cpp

#include <QtGui/QGuiApplication>
#include <QtQml/QQmlApplicationEngine>
#include <QtQml/QQmlEngine>
#include <QQuickWindow>
#include <QtDeclarative>
#include <QObject>
#include <QDebug>
#include "Input.h"

int main(int argc, char *argv[]) {
 QApplication app(argc, argv);

 QDeclarativeView view(QUrl::fromLocalFile("input.qml"));
 QObject *item = view.rootObject();

 Input input;
 QObject::connect(item, SIGNAL(qmlSignal(QString)),
                  &input, SLOT(cppSlot(QString)));
 view.show();
 return app.exec();
}
./Resources/Input.qrc

/
Input.qml
我使用的connect来自以下示例:

QObject::connect(item, SIGNAL(qmlSignal(QString)),&myClass, SLOT(cppSlot(QString))); 

也许有人能知道这里少了什么?谢谢

请真正的
课堂输入站起来好吗

您似乎在Input.h中定义了一个,在Input.cpp中定义了另一个。其中只有一个是Q_对象和QObject子类。main.cpp从Input.h中看到了另一个,因此它不能连接它也就不足为奇了


参见此,如果您不熟悉C++的这个区域,请正确区分C++类声明和定义,如果你不熟悉C++的这个区域。我注释掉了整个Input.h,并将所有内容移到Input.cpp中。然后编译器给出:./Input.cpp:8:错误:不完整类型'class QDebug'QDebug()@timday的无效使用意味着

#include
而不是
#include
;-)您缺少Q_对象和/或缺少源文件末尾的
#include“Input.moc”
include。。。或者,您缺少添加到
标题
变量的输入.h。此外,您不需要在标题中包含qdebug,因为在标题中没有使用它。@timday。引人注目。谢谢你指点那个人!现在我解决了在我的帖子中更新的类双重声明。只有错误仍然存在。@GerryWoodberg:您的代码仍然错误。此外,如果您使用QtCreator,则会显式重新运行make qmake。
/
Input.qml
QObject::connect(item, SIGNAL(qmlSignal(QString)),&myClass, SLOT(cppSlot(QString)));