在Qt同时显示2个Windows

时间:2012-03-18 18:45:42

标签: qt qt4 qwidget qmainwindow

如何同时显示两个窗口?好吧,我有一个主窗口,然后当我按下一个按钮我加载一个插件,创建并返回一个qwidget,并将其设置为中央窗口小部件setCentralWidget(),但我的应用程序崩溃。如果我没有错,这无论如何将显示只有一个窗口同时。

插件代码:

QWidget* PlPlugin::initPltter() {

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

    return plotter;
}

在我的应用程序中我正在做:

setCentralWidget(plotter->initPlotter());

2 个答案:

答案 0 :(得分:0)

尽量不要调整大小或显示它。如果它将成为主窗口的中心小部件,那就没有必要了。

此外,从您的示例中,没有任何迹象表明您正在尝试显示两个窗口。你正在做的是创建另一个小部件并将其设置为主窗口的子级。做其中一个:创建窗口小部件并直接显示它,或创建窗口小部件并将其置于另一个窗口下。

答案 1 :(得分:0)

您的MainWindow子项显示在main.cpp中,第二个小部件执行此操作:

QWidget* PlPlugin::initPltter() {

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

  return plotter;
}

并且执行此操作

setCentralWidget(plotter->initPlotter());

它允许您将MainWindow和小部件放在单独的“窗口”