嵌入式 Qt主函数的书写规范问题

#include
#include “widget.h”
#include “mydlg.h”
int main(int argc, char *argv[])
{
      QApplication a(argc, argv);
              myDlg my1;
      if(my1.exec()==QDialog::Accepted)
      {
Widget w;
              w.show();
          }
    return a.exec();

 

这样,因为 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;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值