QtSingleApplication使用记录

QT 版本 5.15.2 MSVC2019 32

首先下载地址:http://code.qt.io/cgit/qt-solutions/qt-solutions.git/

QtSingleApplication singleApp(argc, argv);
 
 if (singleApp.isRunning())
 {
    singleApp.sendMessage("raise_window_loop");
    return 0;
 }
 
MainWindow w;
singleApp.setActivationWindow(&w);

QObject::connect(&singleApp,&QtSingleApplication::messageReceived,&singleApp,&QtSingleApplication::activateWindow);
w.show();

return singleApp.exec();
`

 1. 首先启动一个实例,假设是app0;注意Main.cpp里面,把MainWindow设为活动窗口。singleApp.setActivationWindow(&w);
 2. 启动第二个实例app2,此时app2发现已经有实例存在,sendMessage("raise_window_noop"); 后自行退出。这个文字,可作为消息在第一个messageReceived中获取。而新打开的是没有文字的,如果要有提示,则自己用MessageBox提示一下退出即可。
 3. 实例app0收到信号,messageReceived,调用默认槽函数&QtSingleApplication::activateWindow
这个Activating Window就是刚才步骤1 里面设置的setActivationWindow(&w),等于是实例2启动了初始实例。

这个只对1个APP效果好,如果会启动子APP或者APP自己重启自己就不太好用了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值