我正在尝试在两个不同的图形视图上显示图形场景中的项目。我的问题是,我不想在两个视图中显示图形场景中的所有项目。例如,在我的应用程序中,在视图1上,我将启动一个编辑器,供用户在一个视图上绘制一些项目,当用户完成编辑时,视图2将显示新添加的项目。
是否可以使用一个图形场景?
萨米
答案 0 :(得分:2)
据我所知,没有内置方法可以做到这一点,但你可以通过以下方式完成:
创建项目时,为该项目指定将在其上显示的窗口小部件的指针(让我们称之为过滤器)。在item的paint()方法中,检查作为参数传递给paint()方法的QWidget *是否与filter一样给出了相同的小部件。如果它们相同,则正常涂漆。如果不是,不要画任何东西。这将仅在一个视图中提供项目可见性。
这种方法的缺陷在于,所有视图中的项目都是可选择的,可移动的等。这只会影响每个视图的可见性。 (可能还有其他问题,如果没有尝试就无法分辨)