Qt进程间通信之剪切板

本文以截图软件为例,展示了如何在两个独立的Qt进程中利用剪切板进行通信。首先创建一个工程,包含一个显示图像的label,并设置定时器每200ms读取剪切板中的图片。接着,定义QClipboard对象获取剪切板中的QPixmap并显示在label上。同时更新截图软件,使其与读取剪切板的定时器同步。最后,分别运行两个进程,截图软件截取屏幕并保存到剪切板,而读取进程则不断从剪切板获取并显示图片。
摘要由CSDN通过智能技术生成

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

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返回一个Q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值