我有两个MainWindows,WindowModality等于Window,我希望第一个窗口在第一个窗口关闭(并且有效)后显示。
问题:当我使用这段代码时,我同时有两个窗口
int main(int argc, char *argv[])
{
LoginWindow loginWin;
loginWin.show();
MainWindow w;
w.show();
return a.exec();
}
答案 0 :(得分:3)
您可以向signal
添加一些LoginWindow
,并在用户关闭它及其有效时将其发出:
class LoginWindow: public QMainWindow
{
.......
signals:
void loginReady();
.....
};
然后在你的main
函数中你可以像这样做:
int main(int argc, char *argv[])
{
....
LoginWindow loginWin;
connect(&loginWin, &LoginWindow::loginReady, [](){
MainWindow* w = new MainWindow();
w->show();
});
loginWin.show();
return a.exec();
}
当您致电loginReady
时,将会执行连接到emit loginReady()
信号的lambda。
当然,您应该将CONFIG += c++11
添加到.pro
文件中。