子类化qgraphicsview和qgraphicsscene

时间:2013-11-07 15:54:25

标签: qt qt4 qgraphicsview qgraphicsscene

我有一个自定义QGraphicsView和一个自定义QGraphicsScene类。当我创建一个新的自定义视图时,我将自定义场景传递给构造函数,该构造函数在其上调用setScene()。但后来当我在我的场景类上调用views()并且它将它作为QList返回时我遇到了问题我认为我需要覆盖views()函数但是我不完全确定我会在其中做什么不同的内容

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

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

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

1 个答案:

答案 0 :(得分:1)

听起来你错过了QGraphicsView和QGraphicsScene的观点。将QGraphicsScene想象成一个在这个世界中具有对象的世界。 QGraphicsView就像一个窗口或相机,可以看到世界(QGraphicsScene)。

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

当你在QGraphicsScene上调用views()时,它会返回一个列表,因为它是所有正在查看场景区域的QGrahicsViews的列表。