我正在Qt中写一个登录窗口

当用户点击“确定”时,应关闭登录窗口,显示“正在连接到服务器...”。小部件,并在 connecttoserver 方法完成其工作后打开主窗口

但是,小部件仅在显示主窗口时出现,并立即消失(甚至不应该关闭!)

如何解决此问题?

void LoginWindow::blah()
   {
   close();

   QWidget widget;
   widget.show();

   //calls to the "connecttoserver method"

   Main *main = new Main(student->getInfo()[0], student->getInfo()[1], student->getInfo()[2], view);
   main->show();
       }
   }
有帮助吗?

解决方案

QWidget在堆栈上声明为自动,因此在方法返回时会被销毁。你想在堆上声明它:

QWidget *widget = new QWidget();
widget->show();

其他提示

除了atomice的答案之外,请确保已将应用程序的quitOnLastWindowClosed设置为是的,否则您的申请将在关闭登录窗口和打开主窗口之间终止。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top