❝介绍使用Qt的库实现的「只能运行单个实例的解决方案」。❞
https://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication
文件读写锁+QLocalServer
创建服务端/客户端实现。QtSingleApplication
将会创建一个本地服务端,而第二次运行的QtSingleApplication
将会创建客户端即触发重复创建实例的行为。qtsingleapplication
目录复制到你的项目工程下;include(qtsingleapplication/src/qtsingleapplication.pri)
#include "qtsinglecoreapplication.h"
int main(int argc, char *argv[])
{
QtSingleApplication a(argc, argv);
/* 判断实例是否已运行 */
if(a.isRunning())
{
...
}
...
}
QtSingleApplication
类继承于QApplication
;setActivationWindow
用于设置需要激活的某个窗口;activateWindow
激活预先设置好的某个窗口。sendMessage
信号为发送消息给第一次创建的实例(由第二次创建实例发出)。messageReceived
槽函数用于接收第二次创建实例的消息。