125
社区成员




————————————————
版权声明:本文为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();//释放访问的内存