2012-03-18 2 views
0

어떻게 동시에 두 개의 창을 표시 할 수 있습니까? 그럼, 메인 윈도우가 있는데, 버튼을 누르면 qwidget을 생성하고 반환하는 플러그인을로드하고, 중앙 위젯으로 설정합니다. setCentralWidget(),하지만 앱이 다운됩니다. 잘못하지 않았다면 어쨌든 하나의 창만 표시됩니다. 같은 시간 . 플러그인에서Qt에서 같은 시간에 2 번 Windows 표시

코드 : 내 응용 프로그램에서

QWidget* PlPlugin::initPltter() { 

    plotter = new QWidget(); 
    plotter->resize(200,300); 
    plotter->setWindowTitle("mypl"); 
    plotter->show(); 

    return plotter; 
} 

내가 뭘 :

setCentralWidget(plotter->initPlotter()); 
+0

오류가 무엇입니까? qt 위젯을 사용하면 부모에 관한 것입니다. 부모 창을 통과하여 두 번째 그림을 표시 할 수 있어야합니다. – bgs

+0

기본 창 안에 두 개의 _windows_ 또는 두 개의 _widgets_를 표시하겠습니까? 첫 번째 경우 플로터 위젯을 중앙 위젯으로 설정하지 마십시오. 두 번째 경우 레이아웃 (또는 QSplitter, QDockwidget 등)이있는 컨테이너 위젯을 추가하여 플로터를 하위 레이아웃으로 추가해야합니다. 이 경우 위젯에서 show()를 호출하지 마십시오. –

답변

0

하지 크기를 조정하거나 보여주는. 메인 윈도우의 중앙 위젯이 될 것이면 불필요합니다.

또한 예제에서 두 개의 창을 표시하려고한다는 것은 아닙니다. 당신이하고있는 일은 다른 위젯을 만들고 그것을 메인 윈도우의 자식으로 설정하는 것입니다. 둘 중 하나를 수행하십시오. 위젯을 작성하여 직접 표시하거나 다른 위젯 아래에 상위로 표시하십시오.

+0

코드를 제공 할 수 있습니까? – develoops

0

초 위젯이 작업을 수행하기위한 귀하의 MainWindow를 자식, MAIN.CPP에 표시 :

QWidget* PlPlugin::initPltter() { 

    plotter = new QWidget(); 
    plotter->resize(200,300); 
    plotter->setWindowTitle("mypl"); 
    plotter->show(); 

    return plotter; 
} 

그리고 그것은 당신이 MainWindow를하고 위젯을 얻을 수 있도록이

setCentralWidget(plotter->initPlotter()); 

을하지 않는다 별도의 '창'

관련 문제