专栏首页Linux驱动QT-QTSingleApplication-程序只运行一个实例

QT-QTSingleApplication-程序只运行一个实例

QTSingleApplication由Qt官方提供的,用于实现只启动一个实例,并在启动时可以向向另一个实例通信(依赖于QtNetwork模块)

QTSingleApplication下载路径: 链接:https://pan.baidu.com/s/1bBLgkpOW3lq6ZQj9ultxyA 提取码:2n9h

1. 添加源码到工程

将QTSingleApplication解压,将解压后目录拷贝到当前项目路径下,在项目pro文件中增加下面这行

2. 修改main.cpp,将以前QApplication改为QtSingleApplication 修改后的代码如下所示:

#include <QtGui>
#include "myui.h"
#include "QtSingleApplication.h"
int main(int argc, char *argv[])
{

QtSingleApplication a("myapp_id",argc, argv);
if(a.isRunning())                  //判断实例是否已经运行
{
qDebug()<<"this is already running";
a.sendMessage("raise_window_noop", 4000); //4s后激活前个实例
return EXIT_SUCCESS;
}
myUi w;
a.setActivationWindow(&w,1);          //如果是第一个实例,则绑定,方便下次调用 
w.show();

return a.exec();
}

1)分析QtSingleApplication a("myapp_id",argc, argv); 其中"myapp_id"字符串表示给当前APP添加ID串,好处就是避免程序不受存放路径影响 2)分析a.setActivationWindow(&w,1) setActivationWindow函数代码如下图所示:

当我们参数为1时,将会连接信号与槽. 表示当我们调用sendMessage()时,将会调用messageReceived()信号函数,最终调用activateWindow()函数.

activateWindow函数代码如下图所示:

所以只要我们调用a.sendMessage()时,便会将上个示例激活

参考来自: https://blog.csdn.net/gatieme/article/details/50600172

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 11.QT-布局管理器(Box,Grid,Form,Stacked)

    张诺谦
  • 45.QT-连接外部DLL,解决调用resolve失败原因

    张诺谦
  • 协处理器CP15介绍—MCR/MRC指令(6)

    概述:在基于ARM的嵌入式应用系统中,存储系统的操作通常是由协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。 而访问CP15寄存器的...

    张诺谦
  • 【典型案例】利用AI技术快速识别物体种类之火眼金睛目标检测

    目标检测任务在计算机视觉和数字图像处理领域扮演着重要角色,在各行各业也已得到广泛应用,如航空航天、机器人、智能监控等重大行业。精准地从图片中识别出目标所在位置,...

    腾讯智能钛AI开发者
  • Single Shot MultiBox Detector论文翻译——中文版

    SSD: Single Shot MultiBox Detector 摘要 我们提出了一种使用单个深度神经网络来检测图像中的目标的方法。我们的方法命名为SSD,...

    Tyan
  • 一个闪回区报警的数据恢复(r11笔记第62天)

    今天在火车上接到一个电话说,数据库有个报警,让我看看是怎么回事。 看着报警信息一直重复出现,看来是有些问题了。 这是一个统计库,出现了DG相关的...

    jeanron100
  • CS系列-CobaltStrike的简单介绍

    监听:即监视器,时刻监视Payload的执行结果,及时捕捉返回的shell Payload:利用代码,即病毒或木马,在目标及执行受将shell进行返回

    字节脉搏实验室
  • 云服务、云办公纷纷单飞,金山软件指谁养老?

    5月26日港股盘后,金山软件公布了2020年Q1财报。数据显示,一季度,金山软件营收11.7亿元人民币,同比增32%;归母净利润625.7万元,去年同期亏损67...

    金融外参
  • 最全面!2019年最新UX设计趋势预测集锦

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具。

    奔跑的小鹿
  • 刚刚,96年美女拿下了刘强东的猪脸识别冠军,30万奖金到手!

    记者 | 鸽子 刚刚,JDD—2017京东金融全球数据探索者大赛决赛冠军出炉,获得算法组4组冠军分别为: 登陆行为识别冠军:啦啦队 店铺销量预测冠军: 小麻猫 ...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券