这是什么错误,D:\WorkSoftware\Qt\Qt5.12.12\5.12.12\msvc2015_64\include\QtCore\qobject.h:254: error: C2664: “QMetaObject::Connection QObject::connectImpl(const QObject *,void **,const QObject *,void **,QtPrivate::QSlotObjectBase *,Qt::ConnectionType,const int *,const QMetaObject *)”: 无法将参数 3 从“const QFuture<void> ”转换为“const QObject ” D:\WorkSoftware\Qt\Qt5.12.12\5.12.12\msvc2015_64\include\QtCore/qobject.h(254): note: 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换 mainwindow.cpp(14): note: 参见对正在编译的函数 模板 实例化“QMetaObject::Connection QObject::connect<void(__cdecl MainWindow:: )(void),void(__cdecl QFuture<void>:: )(void)>(const MainWindow ,Func1,const QFuture<void> ,Func2,Qt::ConnectionType)”的引用 with [ Func1=void (__cdecl MainWindow:: )(void), Func2=void (__cdecl QFuture<void>:: )(void) ]
时间: 2023-03-04 13:01:35 浏览: 140
Qt5.12.8 + VS2017编译的oracle_64位驱动程序qsqloci.dll
这个错误是编译错误,可能是因为在使用`QObject::connect`连接两个对象时,其中一个参数的类型不正确。
根据错误提示,它在尝试将类型为`const QFuture<void>`的第三个参数转换为类型为`const QObject*`的参数。这意味着该参数应该是一个`QObject`对象,但是却传递了一个`QFuture<void>`对象,因此编译器无法将其转换为正确的类型。
要解决这个错误,你需要检查你的代码,并确保你传递正确的参数类型。在这种情况下,你需要将类型为`QFuture<void>`的参数替换为类型为`QObject*`的对象,或者使用`QFutureWatcher`类来监视`QFuture`对象并在其完成时发出信号。
阅读全文