QT-单例程序 重新启动

来源:互联网 发布:手机直播软件 编辑:程序博客网 时间:2024/04/30 04:56

单例程序启动后,如果遇到需要通过程序进行重启,修改上文中的代码如下:

  QSystemSemaphore sema("CLGObject", 1, QSystemSemaphore::Open);    sema.acquire();// 在临界区操作共享内存          QSharedMemory mem("CLGSystemObjcet");// 全局对象名    if (!mem.create(1))// 如果全局对象已存在则退出    {        sema.release();// 如果是 Unix 系统,会自动释放。        return 0;    }    QApplication application(argc, argv);    ClgWin win;    win.show();        sema.release();// 释放临界区        int ret=application.exec();   //获取程序返回值,如果为10 则释放mem ,然后重启     if(ret == 10)    {        mem.detach();        QProcess::startDetached(qApp->applicationFilePath(), QStringList());    }


在需要重启处,调用

qApp->exit(10);






原创粉丝点击