代码编织梦想

QSharedMemory 共享内存处理类

这个类的功能是挺强大的,本次只记录这个类的另一种用法。

通过创建共享内存,用共享内存的方式,防止程序多次启动。

在main.cpp中加入以下代码,可防止程序多次启动:

 

QSharedMemory *shareMem = new QSharedMemory(QString("xxxName"));  //创建共享内存指针

    if(shareMem->attach()){  //判断当前xxxName的共享内存是否存在,若存在,则中断程序启动
        return 0;
    }
    shareMem->create(1);  //若不存在,则创建当前共享内存, 顺序执行程序启动

 

主要是针对某些程序,在当前主机只能启动一次的情况。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/wsxm_wps/article/details/111074307

QT自定义继承控件类添加信号和槽-爱代码爱编程

QT自定义继承控件类添加信号和槽 原因:在使用QT comboBox控件时发现没有点击事件(clicked()),翻阅博客查找到此类解决办法,本文介绍使用QTcreator中ui设计直接生成信号对应槽的方法,不用在程序内使用connect函数联系信号和槽的方式,前一种在参考博客评论区有大神提到,后一种方法在参考博客中有具体介绍,特以为记。 方法总结

Qt+OpenCV发布可执行程序(打包DLL文件)-爱代码爱编程

一、目的         OpenCV是最常用的开源视觉库,Qt是当前最常用的GUI开发框架,用他们做出的软件如果要在其他终端运行就需要提前打包,将依赖的环境连同程序一起打包成可执行文件,这里是使用添加DLL文件的方式,做出绿色版可执行文件,通过U盘直接将生成程序拷到其他电脑上可以直接使用。   二、解决方法 2.1 生成exe文件      

PyQt常用控件的组合使用-爱代码爱编程

写作思路 这次使用到的空间有以下几种: 1、QPushButton 是我们之前用的按钮,也可以当作Toggle用 2、QCheckBox 3、QSlider 4、QCalendarWidget 5、QProgressBar 效果如下,可以改变QFrame的颜色,只有选中了对应Toggle才能改变对应的颜色通道,CheckBox可以控制Slider是否显示

Qt开发C++,比较实用的函数(持续记录中)-爱代码爱编程

1. std::string 和 QString 的转换 // std::string 转换为 QString QString MainWindow::string_to_QString(const std::string str) { return QString::fromLocal8Bit(str.data()); } // QStrin

(3)pyqt5教程--->信号与槽初试-爱代码爱编程

GitHub连接:本专栏所有源代码的GitHub直通车 上一篇已经讲了如何使用QTdesigner生成ui文件并转化为py文件,最终实现界面代码分离的效果 信号与槽作是 QT 的核心机制,是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。它为高层次的事件处理自动生成所需要的附加代码。例如在tkinte

Qt迷宫实现简单的创建和寻路-爱代码爱编程

迷宫问题 一,问题描述1,问题描述2,设计功能要求二,设计思路1,迷宫的创建2,如何寻路3,如何展示及想要实现的效果三,效果展示四,部分代码细节1,如何在界面上绘制迷宫2,如何手动创建迷宫3,如何自动创建迷宫4,关于BFS寻路的细节5,寻路动画的实现6,GitHub源码地址五,其他 一,问题描述 1,问题描述 迷宫实验是取自心理学的一个古典

system v信号量实现进程间共享内存同步机制---环形队列缓冲区-爱代码爱编程

共享内存:上一篇文章已经介绍过shm共享内存和system v信号量机制,这里就不在重复介绍了。 应用场景: 进程间通讯方式有很多,其中最快的应该就是共享内存了,因为直接通过物理内存共享的方式进行通讯,所以速度是其他网络方式不可比的。但是没有一种同步机制管理这块内存的话,应用场景会很有限。下面我们就通过system v信号量的方式给共享内存加上同步机制,

linux的两种共享内存方式---mmap和shmat区别-爱代码爱编程

linux中的两种共享内存。一种是我们的IPC通信System V版本的共享内存,另外的一种就是我们今天提到的存储映射I/O(mmap函数) 在说mmap之前我们先说一下普通的读写文件的原理,进程调用read或是write后会陷入内核,因为这两个函数都是系统调用,进入系统调用后,内核开始读写文件,假设内核在读取文件,内核首先把文件读入自己的内核空间,读完

进程间通信——共享内存(Shared Memory)-爱代码爱编程

什么是共享内存 顾名思义, 共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向

共享内存 进程间通信-爱代码爱编程

kill SIGKILL raise 向自己的进程发送函数 SIGALRM 不是立马发送 是定时等待发出 定时一段时间才发信号 只能发送给当前进程 和raise 一样 uint alarm(uint second)没有告诉内核发送什么信号 让内核延迟second 的时间再发送 发送给当前进程 在信号接受前进程不能结束 收到信号终止进程 信号的接收 sle

boost库中共享内存的使用-爱代码爱编程

什么是共享内存 共享内存是最快速的进程间通信机制。操作系统在几个进程的地址空间上映射一段内存,然后这几个进程可以在不需要调用操作系统函数的情况下在那段内存上进行读/写操作。但是,在进程读写共享内存时,我们需要一些同步机制。 考虑一下服务端进程使用网络机制在同一台机器上发送一个HTML文件至客户端将会发生什么: 服务端必须读取这个文件至内存,然后将其传至

C#共享内存方式读写数据及图像-爱代码爱编程

上面博客C#和python通过socket方法进行通信_jiugeshao的专栏-CSDN博客提到接下来讲下如何通过c#共享内存方式来读写数据及图像,以给c#和python之间通过共享内存方式读写图片埋下伏笔。 所实验的界面长如下样子(右边是panel控件里放入了一个picturebox控件): 成员按变量有如下: [DllIm