0

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

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

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

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

4

1 回答 1

1

听起来你错过了 QGraphicsView 和 QGraphicsScene 的重点。将 QGraphicsScene 视为一个世界,其中包含对象。QGraphicsView 就像一个窗口,或者是一个观察世界的相机(QGraphicsScene)。

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

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

于 2013-11-07T16:23:48.830 回答