2012-03-18 5 views
0

同時に2つのウィンドウを表示するにはどうすればよいですか?私はメインウィンドウを持っていますし、ボタンを押すとqwidgetを作成して返すプラグインをロードし、中央のウィジェットとして設定しますsetCentralWidget()しかし、私のアプリケーションはクラッシュします。同時 。プラグインから2 WindowsをQtの同じ時刻に表示

コード:私のアプリで

QWidget* PlPlugin::initPltter() { 

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

    return plotter; 
} 

私がやっている:

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

何が表示されますか?両親がすべてだというQtウィジェットでは、2番目のプロットを表示するために親ウィンドウを渡すことができるはずです – bgs

+0

2つの_windows_または2つの_widgets_をメインウィンドウの内側に表示しますか?最初のケースでは、プロッタウィジェットを中央ウィジェットとして設定しないでください。 2番目のケースでは、レイアウト(またはQSplitter、QDockwidgetなど)を持つコンテナウィジェットを追加して、プロッタを子としてレイアウトに追加する必要があります。その場合は、ウィジェットでshow()を呼び出さないでください。 –

答えて

0

してみませんリサイズするかを示します。メインウィンドウの中心的なウィジェットになることは不要です。

また、あなたの例では、2つのウィンドウを表示しようとしていることは示唆されていません。あなたがやっていることは、別のウィジェットを作成し、それをメインウィンドウの子として設定することです。どちらかを実行する:ウィジェットを作成して直接表示するか、ウィジェットを作成し、別のウィジェットの下で親にします。

+0

コードを入力してください – develoops

0

二ウィジェットはこれを行うためにあなたのメイン・ウィンドウの子供は、main.cppに示す:

QWidget* PlPlugin::initPltter() { 

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

    return plotter; 
} 

そしては、それはあなたがメインウィンドウやウィジェットを取得できるように、この

setCentralWidget(plotter->initPlotter()); 

をしません別ウィンドウが開きます