No such signal Scene::sceneRectChanged(QRectF) in graphicsvi



当我运行应用程序时,我正试图在我的一个类中使用use信号和插槽:

QObject::connect: No such signal Scene::sceneRectChanged(QRectF) in graphicsviewqgraphicsview.cpp:1723

我的类Scene来源于QGraphicsSceneQObject

为什么控件在库文件中检查这样的信号?

我实际上没有在我正在建立的任何连接中使用此信号。我只是有一个自定义的SIGNAL称为void sceneChanged();在我的派生类。

如你所说:

我的类Scene派生自QGraphicsScene和QObject

这是问题的根源,因为QGraphicsScene已经是QObject的子类,所以你不需要手动继承QObject。只要删除这个不合适的继承,一切都会好起来的。

关于graphicsviewqgraphicsview.cpp:1723。目前你可以在这里看到这段代码。

if ((d->scene = scene)) {
      connect(d->scene, SIGNAL(sceneRectChanged(QRectF)),
              this, SLOT(updateSceneRect(QRectF)));

你当然不使用这个信号,但是当你将你的自定义场景设置为视图时,视图会建立所有需要的连接来服务场景。由于您的错误(多重继承),没有创建信号(sceneRectChanged),所以您得到了这个错误。

相关内容

  • 没有找到相关文章

最新更新