graphicsview\qgraphicsview.cpp:1723 中没有这样的信号 Scene::sceneRectChanged(QRectF)
No such signal Scene::sceneRectChanged(QRectF) in graphicsview\qgraphicsview.cpp:1723
当我 运行 应用程序收到此消息时,我正试图在我的 class 之一中使用信号和槽 :
QObject::connect: No such signal Scene::sceneRectChanged(QRectF) in graphicsview\qgraphicsview.cpp:1723
我的 class Scene
来自 QGraphicsScene
和 QObject
为什么控件要检查库文件中的此类信号?
我实际上并没有在我正在建立的任何连接中使用这个信号。我在派生的 class.
中只有一个名为 void sceneChanged();
的自定义 SIGNAL
如你所说:
My class Scene derives from QGraphicsScene and QObject
这是问题的根源,因为QGraphicsScene
已经是QObject
的子类,所以你不需要手动继承QObject
。去掉这个不合适的继承就好了
关于graphicsview\qgraphicsview.cpp:1723
。目前这段代码你可以看到here.
if ((d->scene = scene)) {
connect(d->scene, SIGNAL(sceneRectChanged(QRectF)),
this, SLOT(updateSceneRect(QRectF)));
您当然不使用此信号,但是当您将自定义场景设置到视图时,视图会建立所有需要的连接才能为场景提供服务。由于你的错误(多重继承),没有创建信号(sceneRectChanged
),所以你得到这个错误。
当我 运行 应用程序收到此消息时,我正试图在我的 class 之一中使用信号和槽 :
QObject::connect: No such signal Scene::sceneRectChanged(QRectF) in graphicsview\qgraphicsview.cpp:1723
我的 class Scene
来自 QGraphicsScene
和 QObject
为什么控件要检查库文件中的此类信号?
我实际上并没有在我正在建立的任何连接中使用这个信号。我在派生的 class.
中只有一个名为void sceneChanged();
的自定义 SIGNAL
如你所说:
My class Scene derives from QGraphicsScene and QObject
这是问题的根源,因为QGraphicsScene
已经是QObject
的子类,所以你不需要手动继承QObject
。去掉这个不合适的继承就好了
关于graphicsview\qgraphicsview.cpp:1723
。目前这段代码你可以看到here.
if ((d->scene = scene)) {
connect(d->scene, SIGNAL(sceneRectChanged(QRectF)),
this, SLOT(updateSceneRect(QRectF)));
您当然不使用此信号,但是当您将自定义场景设置到视图时,视图会建立所有需要的连接才能为场景提供服务。由于你的错误(多重继承),没有创建信号(sceneRectChanged
),所以你得到这个错误。