日志
进程间通信--共享内存a
2019-08-08 15:52
#include "dialog.h"#include "ui_dialog.h"#include <QFileDialog>#include <QImage>#include <QPixmap>#include <QBuffer>#include <QDataStream>
Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog){ ui->setupUi(this); sharemem_.setKey("shareimg");} Dialog::~Dialog(){ delete ui;} void Dialog::on_pushButton_clicked(){ QString str=QFileDialog::getOpenFileName(this,"open image","D:\\","bmp (*.*)"); if(!str.isEmpty()) { QImage img; if(img.load(str)) { ui->label->setPixmap(QPixmap::fromImage(img).scaled(ui->label->width(),ui->label->height())); QBuffer buffer; buffer.open(QBuffer::ReadWrite); QDataStream stream(&buffer); stream<<img; int size=buffer.size(); if(sharemem_.isAttached()) { sharemem_.detach(); } if(sharemem_.create(size)) { sharemem_.lock(); char * to=(char *)sharemem_.data(); const char * from=buffer.data().data(); memcpy(to,from,qMin(sharemem_.size(),size)); sharemem_.unlock(); } } }} |
下一篇: 进程间通信--共享内存b
上一篇: 无