现在,我有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)
谢谢.
只需使用QSingleApplication类而不是QApplication:
https://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