我有一个 MDI 应用程序,其类为
class MainWindow
{ GraphicsView *gv; };
class GraphicsView
{ Scene *scene; };
class Scene
我正在创建一个新的 mdiSubWindow,每个都newfile()
创建MainWindow
一个指向 GraphicsView 的新指针。
void MainWindow::newFile()
{
gv = new GraphicsView;
QMdiSubWindow *w = mdiArea->addSubWindow(gv);
mdiArea->setActiveSubWindow(w);
}
并GraphicsView
创建一个新场景的构造函数。
GraphicsView::GraphicsView()
{
scene = new Scene;
setScene(scene);
}
现在,当创建了多个 subWindows 时,我失去了在以前的 subWindows 中工作的能力。只有最新的 subWindow 按预期工作。例如。我QGraphicsItems
只能在最新的子窗口中绘制,而不能在以前的子窗口中绘制。
我想我应该使用activeSubWindow()
但无法弄清楚如何让每个 subWindow 响应选项卡的变化。我应该如何实现这个?