Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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
C++ Qt连接转换失败_C++_Qt - Fatal编程技术网

C++ Qt连接转换失败

C++ Qt连接转换失败,c++,qt,C++,Qt,我尝试连接QGraphicsObject子类和QGraphicsView子类(在QGraphicsObject构造函数中使用以下行) 但我得到了以下错误: D:\Project\Scene\PointField.cpp:18: error : C2664: 'QMetaObject::Connection QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const: cannot con

我尝试连接
QGraphicsObject
子类和
QGraphicsView
子类(在
QGraphicsObject
构造函数中使用以下行)

但我得到了以下错误:

D:\Project\Scene\PointField.cpp:18: error : C2664: 'QMetaObject::Connection QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const: cannot convert 'QGraphicsView *' to 'const QObject *'
The point types are unrelated; conversion needs reinterpret_cast, C style cast or function style cast.

我从文档中看到,
QGraphicsView
继承自
QObject
,并且在两个子类声明中都有
qu对象
宏。。。有人有主意吗?

我通过将我的QGraphicsView子类标题包含在QGraphicsObject子类标题的顶部,然后清理/执行qmake/rebuild来解决我的问题。

我通过将我的QGraphicsView子类标题包含在QGraphicsObject子类标题的顶部来解决我的问题,然后清除/执行qmake/rebuild。

QGraphicsView
在调用
connect()
时是一个不完整的类型。编译器不知道它继承自
QObject
,这就是它报告的原因

无法将“
QGraphicsView*
”转换为“
const QObject*


解决方案是在
connect()
调用之前的某个地方将
包含在实现文件中。

QGraphicsView
connect()
调用中使用时是一个不完整的类型。编译器不知道它继承自
QObject
,这就是它报告的原因

无法将“
QGraphicsView*
”转换为“
const QObject*


解决方案是将
包含在实现文件中,在调用connect()之前的某个地方。

我个人认为Qt的某些特性非常模糊,这就是一个例子。它是不直观的,编译错误不能提供有用的线索。另一个例子是QThread。编译错误没有提供有用的线索编译错误告诉了我问题的确切原因。@Krapow“另一个例子是QThread。”很抱歉插进来,但如果您感到困惑,请仔细检查各种错误,我会尽力确保正确性。如果你还不明白,就直接问吧。有一天我可能会想写一个规范的“关于线程和Qt的所有你想知道的事情”的答案,我支持这个说法@KubaOber确实提供了极好的答案。我从他们中的很多人身上学到了很多。我个人认为Qt的某些特性非常模糊,这就是一个例子。它是不直观的,编译错误不能提供有用的线索。另一个例子是QThread。编译错误没有提供有用的线索编译错误告诉了我问题的确切原因。@Krapow“另一个例子是QThread。”很抱歉插进来,但如果您感到困惑,请仔细检查各种错误,我会尽力确保正确性。如果你还不明白,就直接问吧。有一天我可能会想写一个规范的“关于线程和Qt的所有你想知道的事情”的答案,我支持这个说法@KubaOber确实提供了极好的答案。我向他们中的许多人学习了。。
D:\Project\Scene\PointField.cpp:18: error : C2664: 'QMetaObject::Connection QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const: cannot convert 'QGraphicsView *' to 'const QObject *'
The point types are unrelated; conversion needs reinterpret_cast, C style cast or function style cast.