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.