Qt 子类化qgraphicsview和QGraphicscene

Qt 子类化qgraphicsview和QGraphicscene,qt,qt4,qgraphicsview,qgraphicsscene,Qt,Qt4,Qgraphicsview,Qgraphicsscene,我有一个自定义的QGraphicsView和一个自定义的QGraphicscene类。当我创建一个新的自定义视图时,我将自定义场景传递给构造函数,该构造函数对其调用setScene()。但是后来我在我的场景类上调用views()时遇到了问题,它以QList的形式返回它。我想我需要重写views()函数,但我不完全确定在它里面我会做什么不同 此外,我实际上有两个自定义场景类,但我使用相同的视图。我在制作两个不同的构造函数时遇到问题: my_view(my_scene1 * scene, QWidg

我有一个自定义的QGraphicsView和一个自定义的QGraphicscene类。当我创建一个新的自定义视图时,我将自定义场景传递给构造函数,该构造函数对其调用setScene()。但是后来我在我的场景类上调用views()时遇到了问题,它以QList的形式返回它。我想我需要重写views()函数,但我不完全确定在它里面我会做什么不同

此外,我实际上有两个自定义场景类,但我使用相同的视图。我在制作两个不同的构造函数时遇到问题:

my_view(my_scene1 * scene, QWidget *parent =NULL);
my_view(my_scene2 * scene, QWidget *parent =NULL);

它会在我的其他文件中导致许多“不完整类型”错误,而这些文件通常工作正常。

听起来好像你没有理解QGraphicsView和QGraphicscene的要点。把QGraphicscene想象成一个有对象的世界。QGraphicsView就像一扇窗户,或者说是一个观察世界的照相机(QGraphicscene)

考虑到这一点,让多个视图查看单个场景是有意义的,但您不会让多个场景链接到单个视图


在QGraphicscene上调用views()时,它会返回一个列表,因为它是查看场景某个区域的所有QGrahicsView的列表。

第二个场景的原因是,当我单击原始场景中的图形时,它会弹出一个类似窗口的窗口。在我接手之前,它就是这样编程的。我想为这两个视图(主视图和弹出框视图)添加一些新的缩放热键和功能。最初在这两种情况下都使用了默认的QGraphicsView类,但我为弹出窗口编写了一个子类视图,并能够使缩放功能正常工作,但当我尝试在主场景中使用自定义视图时,会出现编译错误。是的,这是一个措辞拙劣的问题,所以我可能会删除或更改它。