#include
#include “widget.h”
#include “mydlg.h”
int main(int argc, char *argv[])
{
Widget w;
}
这样,因为 w是在 if语句里定义的,所以当 if语句执行完后它就无效了。这样导致的后果就
是,按下 enterBtn 后,主界面窗口一闪就没了。如果此时对程序改动了,再次点击运行时,
就会出现 error: collect2: ld returned 1 exit status的错误。这是因为虽然主窗口没有
显示,但它只是隐藏了,程序并没有结束,而是在后台运行。所以这时改动程序,再运行时便
会出错。你可以按下调试栏上面的红色 Stop停止按钮来停止程序运行。你也可以在 windows
任务管理器的进程中将该进程结束,而后再次运行就没问题了,当然先关闭 Qt Creator,而
后再重新打开,这样也能解决问题。
正确写法是:
#include
#include "widget.h"
#include "mydlg.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
myDlg my1;
if(my1.exec() == QDialog::Accepted)
{
w.show();
return a.exec();
}
else return 0;
}