1
전환 나는 내가 GraphicsView에 새로운 포인터를 생성 MainWindow
의 모든 newfile()
에 새로운 mdiSubWindow을 만드는거야QMDI 하위 창은
class MainWindow
{ GraphicsView *gv; };
class GraphicsView
{ Scene *scene; };
class Scene
같은 클래스와 MDI 응용 프로그램을 가지고있다.
void MainWindow::newFile()
{
gv = new GraphicsView;
QMdiSubWindow *w = mdiArea->addSubWindow(gv);
mdiArea->setActiveSubWindow(w);
}
그리고 GraphicsView
의 생성자는 새로운 장면을 생성합니다.
GraphicsView::GraphicsView()
{
scene = new Scene;
setScene(scene);
}
이제 여러 개의 하위 창이 만들어지면 이전 하위 Windows에서 작업 할 수 없습니다. 최신 하위 창만 예상대로 작동합니다. 예를 들면. 나는 최신 서브 윈도우에서만 QGraphicsItems
을 그리고 이전 서브 윈도우에서는 그릴 수 없다.
나는 activeSubWindow()
을 사용해야한다고 생각하지만 모든 서브 윈도우를 탭 변경에 응답하는 방법을 알 수 없었다. 어떻게 구현해야합니까?
"이전 서브 윈도우에서 작업 할 수 없게된다는 것을 의미합니까?" – vahancho
@vahancho 나는 편집하고 예제를 들었다. –
그래픽 장면의 포인터를 사용하여 새로운 뷰 생성시이를 업데이트한다고 생각합니다. 하위 창을 활성화 할 때 업데이트해야합니다. 'QMdiArea :: subWindowActivated()'신호를 사용해보십시오. – vahancho