用Qt发布的应用,每双击一次,都会打开一个软件,这可能会导致一些不良影响,比如:临界资源的访问。
所以,我们希望无论双击多少次这个应用,都只会打开一个软件。
这就需要使用qtsingleapplication。
但是qtsingleapplication默认使用Widget。对于Qml的应用是不能直接支持的。所以,需要修改qtsingleapplication的源代码。
如下图所示。
在qtsingleapplication.h文件中,注释掉widget相关的代码,并添加QGuiApplication头文件。
在qtsingleapplication.cpp,要注释掉上图对应的类、信号、槽。再把QtSingleApplication类改为继承QGuiApplication类。这里不一一截图。
最后在main.cpp中,使用QtSingleApplication,如下图所示。