QUdpSocket傳輸圖片QImage(QPixmap…
来源:互联网 发布:巨杉数据库nosql 编辑:程序博客网 时间:2024/06/07 01:17
#ifndef SENDER_H
#define
#include <QtGui/QWidget>
#include <QUdpSocket>
#include <QLabel>
#include <QPushButton>
#include <QFileDialog>
#include <QBuffer>
#include <QMessageBox>
class Sender : public QWidget
{
Q_OBJECT
private:
QLabel* m_label;
QPushButton* m_browse;
QUdpSocket* m_socket;
const static quint16 port = 6163;
public:
Sender(QWidget *parent = 0);
~Sender();
private slots:
void browse();
};
#endif //
#include "widget.h"
Sender::Sender(QWidget *parent)
: QWidget(parent)
{
m_label = new QLabel(this);
m_label->setFixedSize(320,240);
m_label->move(0,0);
m_label->show();
m_browse = new QPushButton("browse",this);
m_browse->setFixedSize(m_browse->sizeHint());
m_browse->move(330,0);
m_browse->show();
connect(m_browse,SIGNAL(clicked()),this,SLOT(browse()));
m_socket = new QUdpSocket(this);
bool result = m_socket->bind(port);
if(!result)
{
QMessageBox::critical(0,"error","Bind Error!");
return;
}
}
Sender::~Sender()
{
}
void Sender::browse()
{
QString path;
QFileDialog* fd = new QFileDialog;
fd->setViewMode(QFileDialog::Detail);
path =fd->getOpenFileName(this,tr("Images"),"./",tr("ImageFiles(*.jpg *.png *.gif *.jpeg)"));
#ifdef Q_OS_WIN32
path.replace("/","\\");
#endif
if ( !path.isEmpty() )
{
m_label->clear();
m_label->setPixmap(QPixmap(path));
QImage image(path);
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::ReadWrite);
image.save(&buffer, "PNG");
qint64 res;
if((res =m_socket->writeDatagram(ba,QHostAddress::Broadcast,port))!= ba.length())
{
return;
}
//
}
}
#ifndef RECEIVER_H
#define
#include<QtGui/QWidget>
#include <QUdpSocket>
#include <QLabel>
#include <QMessageBox>
class Receiver : public QWidget
{
Q_OBJECT
private:
QLabel* m_label;
QUdpSocket* m_socket;
const static quint16 port = 6163;
public:
Receiver(QWidget *parent = 0);
~Receiver();
private slots:
void readData();
};
#endif //
#include "widget.h"
Receiver::Receiver(QWidget*parent)
: QWidget(parent)
{
this->setFixedSize(640,480);
this->move(0,0);
m_label = new QLabel(this);
m_label->setFixedSize(1024,768);
m_label->move(0,0);
m_label->show();
m_socket = newQUdpSocket(this);
bool result = m_socket->bind(port);
if(!result)
{
QMessageBox::critical(0,"error","Bind Error!");
return;
}
connect(m_socket,SIGNAL(readyRead()),this,SLOT(readData()));
}
Receiver::~Receiver()
{
}
void Receiver::readData()
{
while (m_socket->hasPendingDatagrams())
{
QByteArray datagram;
datagram.resize(m_socket->pendingDatagramSize());
m_socket->readDatagram(datagram.data(),datagram.size());
QImage image;
image.loadFromData(datagram);
QPixmap pm;
pm = pm.fromImage(image);
m_label->clear();
m_label->setPixmap(pm);
this->update();
}
}
0 0
- QUdpSocket傳輸圖片QImage(QPixmap…
- QUdpSocket傳輸圖片QImage(QPixmap…
- QPixmap vs. QImage
- QT QPixmap、QBitmap、QImage
- QPixmap/QImage/QPicture
- QPixmap/QImage/QPicture
- QPixmap 和 QImage区别
- QPixmap、QBitmap、QImage 、QPicture
- 关于QPixmap/QImage/QPicture
- 关于QPixmap/QImage/QPicture
- QPixmap vs. QImage
- QImage Mat QPixmap转换
- QImage与QPixmap
- QPixmap,QBitmap,QImage,QPicture
- 绘图设备 QPixmap、QBitmap QImage
- 绘图设备 QPixmap、QBitmap QImage
- QPixmap、 QBitmap、QImage 與 QPicture
- QPixmap、QBitmap、QImage 與 QPicture
- [转] Qt属性setProperty & propert…
- Android Native代码知识点学习
- Qt漸變色 QGradient
- Qt关于dll的生成和使用(Qt C++ li…
- QRegExp正则表达式
- QUdpSocket傳輸圖片QImage(QPixmap…
- [转]Qt中pro文件的写法
- QHeaderView的樣式設定(以QTableWi…
- Ubuntu9.10下安装配置tftp服务器
- QtWebKit播放flash的設置
- [转]Qt在Windows下添加语音输出功…
- [转] qt播放flash
- X11/Linux下发布Qt程序(Deploying …
- linux qt环境变量设置