如何同时显示两个窗口?好吧,我有一个主窗口,然后当我按下按钮时,我加载一个插件,该插件创建并返回一个qwidget,并将其设置为中央widget setCentralWidget()
,但我的应用程序崩溃了。如果我没有错,这将同时显示一个窗口。
来自插件的代码:
QWidget* PlPlugin::initPltter() {
plotter = new QWidget();
plotter->resize(200,300);
plotter->setWindowTitle("mypl");
plotter->show();
return plotter;
}
在我的应用程序中,我正在做:
setCentralWidget(plotter->initPlotter());
尽量不调整大小或显示它。如果它将成为主窗口的中心小部件,这是不必要的。
此外,从你的例子中,没有任何迹象表明你试图显示两个窗口。您正在做的是创建另一个小部件,并将其设置为主窗口的子窗口。做一个或另一个:创建小部件并直接显示它,或者创建它并在另一个下为其设置父级。
您的MainWindow子窗口显示在main.cpp中,对于第二个小部件,请执行以下操作:
QWidget* PlPlugin::initPltter() {
plotter = new QWidget();
plotter->resize(200,300);
plotter->setWindowTitle("mypl");
plotter->show();
return plotter;
}
不要进行
setCentralWidget(plotter->initPlotter());
它允许您在单独的"窗口"中获取MainWindow和小部件