質問
Qtでログインウィンドウを書いています。
ユーザーが[OK]をクリックすると、ログインウィンドウが閉じ、"サーバーに接続しています..."ウィジェット]を選択し、 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を必ず設定してください。 falseまたはログインウィンドウを閉じてからメインウィンドウを開くまでの間にアプリケーションが終了します。
所属していません StackOverflow