小弟刚刚入门,照着教程一步步学,首先是出现登录对话框,然后单击登录就进入主界面,但是编程的时候,不知道为什么单击退出按钮后,也可以进入主界面。

dialog.cpp:
void Dialog::on_ExitBtn_clicked(){ close(); //窗口关闭}
void Dialog::on_LoginBtn_clicked(){ accept(); //给窗口发出accpet信号,窗口被Accepted}
main.cpp:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
Dialog login;
login.show();
if(Dialog::Accepted)
{
login.exec();
w.show();
return a.exec();
}
else
return 0;
}
正确的做法是:在main.cpp中写成:
if( login.exec()==Dialog::Accepted)
{
w.show();
return a.exec();
}
可是原因是什么呢,小弟百思不得其解,求各位大佬帮帮忙

dialog.cpp:
void Dialog::on_ExitBtn_clicked(){ close(); //窗口关闭}
void Dialog::on_LoginBtn_clicked(){ accept(); //给窗口发出accpet信号,窗口被Accepted}
main.cpp:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
Dialog login;
login.show();
if(Dialog::Accepted)
{
login.exec();
w.show();
return a.exec();
}
else
return 0;
}
正确的做法是:在main.cpp中写成:
if( login.exec()==Dialog::Accepted)
{
w.show();
return a.exec();
}
可是原因是什么呢,小弟百思不得其解,求各位大佬帮帮忙
