クラスが次のようなMDIアプリケーションがあります
class MainWindow
{ GraphicsView *gv; };
class GraphicsView
{ Scene *scene; };
class Scene
GraphicsView への新しいポインターを作成するたびnewfile()
に、新しい mdiSubWindow を作成しています。MainWindow
void MainWindow::newFile()
{
gv = new GraphicsView;
QMdiSubWindow *w = mdiArea->addSubWindow(gv);
mdiArea->setActiveSubWindow(w);
}
のコンストラクターはGraphicsView
、新しい Scene を作成します。
GraphicsView::GraphicsView()
{
scene = new Scene;
setScene(scene);
}
複数のサブウィンドウが作成されると、以前のサブウィンドウで作業できなくなります。最新のサブウィンドウのみが期待どおりに機能します。たとえば。QGraphicsItems
以前のサブ ウィンドウではなく、最新のサブ ウィンドウでのみ描画できます。
使用する必要があると思いますactiveSubWindow()
が、すべてのサブウィンドウをタブの変更に応答させる方法がわかりませんでした。これをどのように実装すればよいですか?