在很多实现中,在使用 QSharedMemory 检测程序是否运行的同时,还会使用 QLocalSocket 来通知界面来进行显示。但在一些项目中,并不需要这个逻辑。因此删除了 QLocalSocket 相关的代码。
代码如下:
// main.cpp
#include "SingleApplication.h"
int main(int argc, char *argv[])
{
// ...
SingleApplication single("pers.kyno.bp.userapp");
if (!single.run())
{
return 0;
}
// ...
}
SingleApplication 的实现为:
// SingleApplication.h
#ifndef SingleApplication_H
#define SingleApplication_H
#include <QObject>
class QSharedMemory;
class SingleApplication : public QObject
{
Q_OBJECT
public:
SingleApplication(const QString &key);
virtual ~SingleApplication();
public:
bool run();
private:
QSharedMemory *_memory;
};
#endif // SingleApplication_H
// SingleApplication.cpp
#inclu

本文介绍了如何使用QSharedMemory实现Qt应用程序的简单单例模式,避免使用QLocalSocket进行额外的界面通知。通过QSharedMemory检查和控制程序实例。
最低0.47元/天 解锁文章
710

被折叠的 条评论
为什么被折叠?



