资源简介
本项目是采用C/S模型,采用QT来实现跨平台,在局域网内可以视频聊天发送文件,界面美观简洁,便捷。
开发流程:
(2) 登录之后,Server端和Client端建立连接
(3) 好友列表分组界面设计
(4) 聊天对话框界面设计,打开对话框可以相互聊天,发送文件
(5) 视频界面设计,视频是采用UDP传输方式,加入多播组,打开摄像头,把视频数据发给对方,把接收的到视频数据显示到界面上
(6) 使用全QT技术(网络编程,界面布局,信号和槽)
代码片段和文件信息
#include “client.h“
#include “ui_client.h“
#include
Client::Client(QWidget *parent) :
QDialog(parent)
ui(new Ui::Client)
{
ui->setupUi(this);
/*去边框,设置颜色*/
setWindowFlags(Qt::framelessWindowHint);
QPalette p=palette();
p.setColor(QPalette::WindowQt::green);
setPalette(p);
sendvideo = new video;
sendvideo->GetClient(this);
/*设置listWidget颜色*/
// ui->label->setText(“对方正在输入中“);
ui->listWidget->setstyleSheet(“QListWidget{color:blue;background:yellow;}“);
tcpSocket = new QTcpSocket;
tcpSocket->abort();
tcpSocket->connectToHost(“127.0.0.1“6666);
//tcpSocket->connectToHost(“192.168.1.11“6666);
/*接收数据*/
connect(tcpSocket SIGNAL(readyRead()) this SLOT(reveData()));
connect(tcpSocket SIGNAL(error(QAbstractSocket::SocketError))
this SLOT(displayerror(QAbstractSocket::SocketError)));
connect(ui->sendEditSIGNAL(returnPressed())thisSLOT(on_sendButton_clicked()));
}
/*接受数据*/
void Client::reveData()
{
QString mes;
QString str;
QString message;
QTime time=QTime::currentTime();
QString text=time.toString(“hh:mm:ss“);
QDataStream in(tcpSocket);
in.setVersion(QDataStream::Qt_5_2);
in >> message;
mes = tr(“张新建 “) + text;
QListWidgetItem *items = new QListWidgetItem(QIcon(“../QQclient/image/qw.jpg“)mes);
items->setTextAlignment(Qt::AlignLeft);
ui->listWidget->addItem(items);
str = tr(“ “) + message;
ui->listWidget->addItem(str);
}
/*发送数据*/
void Client::on_sendButton_clicked()
{
QString mes;
QString str;
QString message;
QTime time=QTime::currentTime();
QString text=time.toString(“hh:mm:ss“);
if(ui->sendEdit->text() == ““)
{
return ;
}
QByteArray block;
QDataStream out(&block QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_2);
out <sendEdit->text();
tcpSocket->write(block);
mes = ui->sendEdit->text();
str = tr(“萌么哒哒 “) + text;
QListWidgetItem *items = new QListWidgetItem(str);
items->setTextAlignment(Qt::AlignRight);
ui->listWidget->addItem(items);
message = tr(“ “) + mes;
QListWidgetItem *item = new QListWidgetItem(message);
item->setTextAlignment(Qt::AlignRight);
ui->listWidget->addItem(item);
ui->sendEdit->clear();
}
/*先发送服务器,我是谁*/
void Client::sendPersonal(QString personal)
{
QByteArray block;
QDataStream out(&block QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_2);
out << personal;
tcpSocket->write(block);
}
/*清屏*/
void Client::on_clearButton_clicked()
{
ui->listWidget->clear();
}
void Client::displayerror(QAbstractSocket::SocketError)
{
qDebug() << tcpSocket->errorString();
}
Client::~Client()
{
delete ui;
}
void Client::on_video_clicked()
{
int ix = geometr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-11 01:55 QQ_text\
文件 33186 2016-11-25 09:56 QQ_text\QQ625.jpg
文件 587 2017-01-22 15:33 QQ_text\QQ_text.pro
文件 18721 2017-06-11 01:55 QQ_text\QQ_text.pro.user
文件 17236 2016-12-24 12:38 QQ_text\QQ截图20161224123800.png
文件 2405 2017-01-06 16:06 QQ_text\dialog.cpp
文件 795 2017-01-06 16:06 QQ_text\dialog.h
文件 17203 2017-01-22 17:16 QQ_text\dialog.ui
目录 0 2017-03-24 21:25 QQ_text\image\
文件 6302 2016-12-24 13:06 QQ_text\image\130612.png
文件 43806 2016-12-24 13:03 QQ_text\image\15.png
文件 132103 2016-12-26 10:33 QQ_text\image\20161226103320.png
文件 15198 2016-12-24 13:11 QQ_text\image\31101.png
文件 15042 2016-12-24 12:46 QQ_text\image\4611.png
文件 37779 2016-12-24 13:14 QQ_text\image\55.png
文件 47691 2016-12-24 14:25 QQ_text\image\Desk64441302007151.jpg
文件 33186 2016-11-25 09:56 QQ_text\image\QQ.jpg
文件 17236 2016-12-24 12:38 QQ_text\image\QQ截图20161224123800.png
文件 8616 2016-10-10 23:58 QQ_text\image\audio.png
文件 430942 2016-12-24 09:39 QQ_text\image\dc.png
文件 19762 2016-12-24 12:58 QQ_text\image\e.png
文件 47137 2017-01-01 13:20 QQ_text\image\move.png
文件 21049 2016-10-10 21:50 QQ_text\image\pic3.png
文件 9239 2016-11-25 10:14 QQ_text\image\qw.jpg
文件 16831 2016-10-16 16:52 QQ_text\image\video1.png
文件 196 2017-01-01 16:09 QQ_text\main.cpp
文件 9662 2016-12-24 11:46 QQ_text\qapp.ico
文件 59 2016-12-24 11:47 QQ_text\qapp.rc
文件 9662 2016-12-24 11:28 QQ_text\qq.ico
文件 9239 2016-11-25 10:14 QQ_text\qq.jpg
文件 679 2017-01-22 16:20 QQ_text\res.qrc
............此处省略276个文件信息
评论
共有 条评论