資源簡介
本項目是采用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?<????tcpSocket->write(block);
}
/*清屏*/
void?Client::on_clearButton_clicked()
{
????ui->listWidget->clear();
}
void?Client::displayerror(QAbstractSocket::SocketError)
{
????qDebug()?<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個文件信息
評論
共有 條評論