Qt进程间通信之剪切板

2024-02-14 14:48
文章标签 qt 间通信 进程 剪切板

本文主要是介绍Qt进程间通信之剪切板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

           以截图软件为例,同时运行截图软件和另外一个读取所截取图片的软件,说明这两个进程间通信。之前的截图软件已经做好,接下来准备一个读取剪切板的图片。

1.新建一个mainWindow工程,在其UI界面中,拖入一个label。

2.进入mianwindow.h中定义一个全局的定时器和一个全局的QPixmap类型变量,并做一个定时器的信号槽连接,如下:

MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);timer=new QTimer;QObject::connect(this->timer,SIGNAL(timeout()),this,SLOT(getpicture()));timer->start(200);
}

     定时器定时200ms,即每0.2秒读取一次剪切板的图片。

3.添加槽函数代码,如下:

void MainWindow::getpicture()
{QClipboard *board=QApplication::clipboard();this->pixmap=board->pixmap();ui->label->setPixmap(this->pixmap.scaled(ui->label->size()));
}

         定义一个QClipboard类的对象,通过该对象的pixmap返回一个QPixmap结构数据传递给全局的pixmap,即剪切板的图片被读入到程序当初,利用label的setPixmap方法,将其显示在label中。注意,这里没有让定时器stop,即定时器一直执行。

4.更改截屏软件代码。

      更改定时器,设置定时器的时长跟读取剪切板的时间一样,即200ms,同时关闭定时器的stop,这样就可以在截取图片的label看到动态图片了。

5.两个工程分别用两个Qt跑,这就是两个进程。

   运行截图软件工程


          然后运行读取剪切板工程


         这就是截屏软件在不停的截取当前屏幕的图片,并且保存到了剪切板,然后另外一个进程不停的从剪切板上读取图片显示出来。



这篇关于Qt进程间通信之剪切板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708787

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

[Linux]:进程(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程终止 1.1 进程退出的场景 进程退出只有以下三种情况: 代码运行完毕,结果正确。代码运行完毕,结果不正确。代码异常终止(进程崩溃)。 1.2 进程退出码 在编程中,我们通常认为main函数是代码的入口,但实际上它只是用户级

java 进程 返回值

实现 Callable 接口 与 Runnable 相比,Callable 可以有返回值,返回值通过 FutureTask 进行封装。 public class MyCallable implements Callable<Integer> {public Integer call() {return 123;}} public static void main(String[] args

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

java线程深度解析(二)——线程互斥技术与线程间通信

http://blog.csdn.net/daybreak1209/article/details/51307679      在java多线程——线程同步问题中,对于多线程下程序启动时出现的线程安全问题的背景和初步解决方案已经有了详细的介绍。本文将再度深入解析对线程代码块和方法的同步控制和多线程间通信的实例。 一、再现多线程下安全问题 先看开启两条线程,分别按序打印字符串的

使用Qt编程QtNetwork无法使用

使用 VS 构建 Qt 项目时 QtNetwork 无法使用的问题 - 摘叶飞镖 - 博客园 (cnblogs.com) 另外,强烈建议在使用QNetworkAccessManager之前看看这篇文章: Qt 之 QNetworkAccessManager踏坑记录-CSDN博客 C++ Qt开发:QNetworkAccessManager网络接口组件 阅读目录 1.1 通用API函数

Qt多语种开发教程

Qt作为跨平台的开发工具,早已应用到各行各业的软件开发中。 今天讲讲,Qt开发的正序怎么做多语言开发。就是说,你设置中文,就中文显示;设置英语就英文显示,设置繁体就繁体显示,设置发育就显示法语等。 开发环境(其实多语种这块根环境没太大关系):win10,Qt.5.12.10 一.先用QtCreator创建一个简单的桌面程序 1.工程就随便命名“LanguageTest”,其他默认。 2.在设计师