资源简介
本功能设计实现了局域网聊天系统的群聊以及私聊部分,群聊部分借鉴《Qt及Qt Quick开发实战精解》中的实例,添加了私聊功能,适合初学者学习,博客链接:https://blog.csdn.net/hfuu1504011020/article/details/81907478
代码片段和文件信息
#include “chat.h“
#include “ui_chat.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int Chat::num1 =0;
int Chat ::num2 = 0;
/*Chat::Chat(QWidget *parent) :
QDialog(parent)
ui(new Ui::Chat)
server(nullptr)
xchat(nullptr)
is_opend(false)
{
ui->setupUi(this);
}
*/
Chat::~Chat()
{
is_opend = false;
delete ui;
}
Chat::Chat(QString pasvusername QString pasvuserip):
xpasusername(pasvusername)
xpasuserip(pasvuserip)
is_opend(false)
server(nullptr)
xchat(nullptr)
used(false)
ui(new Ui::Chat)
{
ui->setupUi(this);
ui->messageTextEdit->setFocusPolicy(Qt::StrongFocus);
ui->textBrowser->setFocusPolicy(Qt::NoFocus);
ui->messageTextEdit->setFocus();
ui->messageTextEdit->installEventFilter(this);
a = 0;
// is_opend = false;
ui->label->setText(tr(“与%1私聊中 对方的IP:%2“).arg(xpasusername)
.arg(xpasuserip));
xchat = new QUdpSocket(this);
xport = 45456;
xchat->bind( QHostAddress(getIp())xport);
connect(xchatSIGNAL(readyRead())
thisSLOT(processPendinDatagrams()));
server = new TcpServer(this);
connect(server SIGNAL(sendFileName(QString))
thisSLOT(getFileName(QString)));
}
void Chat::sendMessage(messageType type QString serverAddress)
{
QByteArray data;
QDataStream out(&dataQIODevice::WriteOnly);
QString localHostName = QHostInfo::localHostName();
QString address = getIp();
out < switch (type) {
case LeftParticipant:
break;
case Message:
{
used = false;
if(ui->messageTextEdit->toPlainText() ==““)
{
QMessageBox::warning(0tr(“警告“)tr(“发送内容不能为空“)QMessageBox::Ok);
return ;
}
else
{
ui->label->setText(tr(“与%1私聊中 对方的IP:%2“).arg(xpasusername)
.arg(xpasuserip));
message = getMessage();
out << address << message;
// out << address < ui->textBrowser->verticalScrollBar()->setValue(ui->textBrowser->verticalScrollBar()->maximum());
}
break;
}
case FileName:
{
QString clientAddresss = xpasuserip;
out < break;
}
case Refuse:
{
out << serverAddress ;
break;
}
default:
break;
}
qDebug() <<“num1:“ << ++num1 << “ipAddress:“ << address<<“\n“<<“文件“< xchat->writeDatagram(datadata.length()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-21 09:16 chatPrivate\
文件 861 2009-10-16 18:37 chatPrivate\bold.png
文件 12285 2018-08-20 16:41 chatPrivate\chat.cpp
文件 2127 2018-08-20 15:29 chatPrivate\chat.h
文件 7606 2018-08-18 09:59 chatPrivate\chat.ui
文件 1291 2018-08-20 17:00 chatPrivate\chatPrivate.pro
文件 23787 2018-08-21 09:16 chatPrivate\chatPrivate.pro.user
文件 1028 2009-10-16 18:37 chatPrivate\clear.png
文件 960 2009-10-16 18:37 chatPrivate\color.png
文件 304 2018-08-20 16:49 chatPrivate\images.qrc
文件 992 2009-10-16 18:37 chatPrivate\italic.png
文件 351 2018-08-20 16:52 chatPrivate\main.cpp
文件 42 2018-08-21 09:11 chatPrivate\myapp.rc
文件 161862 2018-08-20 16:48 chatPrivate\myicon.ico
文件 1172 2009-10-16 18:37 chatPrivate\save.png
文件 758 2009-09-22 13:43 chatPrivate\send.png
文件 3720 2018-08-19 18:54 chatPrivate\tcpclient.cpp
文件 1037 2018-08-19 18:55 chatPrivate\tcpclient.h
文件 1639 2018-08-15 07:20 chatPrivate\tcpclient.ui
文件 5060 2018-08-19 19:04 chatPrivate\tcpserver.cpp
文件 1123 2018-08-18 04:58 chatPrivate\tcpserver.h
文件 1950 2018-08-15 07:20 chatPrivate\tcpserver.ui
文件 838 2009-10-16 18:37 chatPrivate\under.png
文件 14395 2018-08-20 13:11 chatPrivate\widget.cpp
文件 2035 2018-08-19 13:39 chatPrivate\widget.h
文件 8840 2018-08-15 00:42 chatPrivate\widget.ui
- 上一篇:OA考勤与excel手工考勤自动合并样例
- 下一篇:PyCharm主题配色方案
相关资源
- Qt自适应行高表头重载
- TimeDynamicListDemo.rar
- Qt实现游戏FlappyBird
- QT串口调试助手
- 基于TCP协议的QT聊天程序
- Qt加OpenGL实现鼠标控制视角
- Qt 4.8.4以及傻瓜式安装教程
- QT编写的电子书阅读器
- Qt之生成png/jpg/bmp格式图片
- Qt开发中常用QSS样例
- QT之子窗口控件使用
- Qt做的windows运行win+r窗口
- QTopengl模块使用demo
- QT之dock使用
- QT使用openglES模块做的立方体程序
- qt做的温度计小程序
- QT计算器界面的ui文件
- qt界面跳转切换
- QT个税计算器
- Qt 按钮收缩,点击show按钮,在按钮后
- 基于Qt实现音频播放器
- Qt编写的串口收发数据小程序源码
- 基于qrencode4.0.0 库和QT环境 实现QR 二维
- 2048源码qt4
- Qt下tcp和udp的编程
- Qt自动补全
- Qt电子时钟
- qttcpsocket传送结构体
- QT5.7+OPENGL画正方体
- Qt Flat样式的各种控件
评论
共有 条评论