QT实现避免软件重复打开功能

Helloorld_11 2023-08-09 16:43:07

————————————————
版权声明:本文为CSDN博主「Helloorld_1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Helloorld_1/article/details/132183077

因为做项目的需要,因此在这里记录一哈。因为我们开发出来的QT软件,在实际的工程运用里面会遇到很多问题。首先是重复点击软件,可能会导致开出多个软件页面,这对于一些硬件设备不太行的场合,会加剧软件运行的不流畅度,因此要考虑如何避免这种情况的发生!!!

在这里附上自己实现的代码(直接写在main.cpp文件里面):

首先需要添加的头文件,有以下内容:其中的QMessagebox是实现,当重复软件打开时候,给出软件提示。

 
#include <QSystemSemaphore>
#include <QSharedMemory>
#include <QMessageBox>

具体实现代码如下:

//避免软件重复打开
    QSystemSemaphore sema("a",1,QSystemSemaphore::Open);
    sema.acquire();// 在临界区操作共享内存   SharedMemory
    QSharedMemory mem("b");// 全局对象名
    if (!mem.create(1))// 如果全局对象以存在则退出
    {
        QMessageBox::information(0, QObject::tr("提示"),QObject::tr(u8"程序运行中,如有需要请先退出"));
        sema.release();
        return 0;
    }
    sema.release();//释放访问的内存
...全文
492 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
鱼弦 2023-08-09
  • 打赏
  • 举报
回复

img

125

社区成员

发帖
与我相关
我的任务
社区描述
全栈技术社区,指在创建一个和谐的技术群体,共同学习进步
qt前端tcp/ip 个人社区 四川省·成都市
社区管理员
  • 鱼弦
  • M malloc
  • 恰柠
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧