如何在再次打开应用程序时显示应用程序Qt

Hie*_*Ngo 5 c++ qt

现在,我有1个应用程序,但我不想打开应用程序两次,因此我QShareMemory在打开两次时使用检测应用程序.我的问题是:当用户打开第二个应用程序时,我如何在屏幕上显示当前应用程序?

int main(int argc, char *argv[]) {
    Application a(argc, argv);

    /*Make sure only one instance of application can run on host system at a time*/
    QSharedMemory sharedMemory;
    sharedMemory.setKey ("Application");
    if (!sharedMemory.create(1))
    {

        qDebug() << "123123Exit already a process running";
        return 0;

    }
    /**/

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

k06*_*06a 1

只需使用QSingleApplication类而不是QApplicationhttps://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication

int main(int argc, char **argv)
{
    QtSingleApplication app(argc, argv);
    if (app.isRunning())
        return 0;

    MyMainWidget mmw;
    app.setActivationWindow(&mmw);
    mmw.show();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

它是 Qt 解决方案的一部分:https ://github.com/qtproject/qt-solutions