自学linux qt遇到一个问题,咨询一下各位

  • 我好像是小号
    如题目。。。。。。。。。。。。linux系统 QT
    我在主程序建立了一个按钮。需求就是点击按钮,主程序执行a脚本,然后退出主程序。提出主程序之后,a脚本继续执行,因为某些原因,a脚本跟主程序不能同时运行,所以要主要程序先调用a脚本,然后主程序退出。

    a脚本里面的内容是延迟3秒,然后启动B程序,单独执行a脚本,运行正常,说明脚本是没有问题的。


    为啥我这个程序,a脚本不执行哎,a脚本跟着主程序一起退出了

    1. void SystemSetting::on_pushButton_3_clicked(bool checked)
    2. {

    3. QProcess *process = new QProcess(); // 新建立一个线程
    4. process->start("/opt/a.sh"); //线程独立执行a.sh脚本

    5. QApplication* app; //退出主程序
    6. app->exit(0); //退出主程序
    复制代码



    852555.PNG
  • 退
    退休工人
    帮号弟顶一下。号弟发达了带我飞。
  • h
    happyd8699
    试试这个 process->start("/opt/a.sh &");
  • j
    jckimi
    程序空间,父进程,子进程的关系,你先去学习一下。
  • 我好像是小号
    回复3#happyd8699


    加一个&符号?
  • B
    B-SIDE
    startDetached()
  • 我好像是小号
    回复4#jckimi


    王婆卖瓜,现学现用啊。要学习那么多,来不及哎
  • r
    rolandlau
    https://www.cnblogs.com/god-of-death/p/7802758.html
    start是非阻塞的,看一下 waitForFinished 这个方法,你的qt程序应当等待你的sh执行结束才能结束
  • 我好像是小号
    回复8#rolandlau


    我的a脚本是启动B主程序。因为系统的原因,不能同时显示两个顶级窗口。所以不能等a脚本执行完成哎。只能点击按钮,执行a脚本,然后退出程序,a脚本延迟3秒才会启动B主程序。
  • 我好像是小号
    回复6#B-SIDE


    大佬编译报错8858585.PNG
  • r
    rolandlau
    应该是process->startDetached("/opt/cm.sh");
  • 我好像是小号
    回复2#退休工人
    带你双飞嘛?iOS fly ~
  • 我好像是小号
    回复11#rolandlau
    多谢多谢,马上测试iOS fly ~
  • B
    B-SIDE
    回复10#我好像是小号
    我擦,假电工?你搞两个()()做啥?
  • 我好像是小号
    回复14#B-SIDE
    好事成双嘛一对 iOS fly ~
  • c
    cnapache
    回复15#我好像是小号

    肯定不是计算机专业的