QT Day5思维导图

聊天室代码:

#include "cli.h"
#include "ui_cli.h"Cli::Cli(QWidget *parent): QWidget(parent), ui(new Ui::Cli)
{ui->setupUi(this);socket = new QTcpSocket(this);connect(socket,&QTcpSocket::connected,this,&Cli::connect_slot);//客户端与服务器连接成功后,如果服务器向客户端发来数据,客户端就会自动发送一个readyRead信号connect(socket,&QTcpSocket::readyRead,this,&Cli::readyRead_slot);connect(socket,&QTcpSocket::disconnected,this,&Cli::disconnect_slot);
}Cli::~Cli()
{delete ui;
}//连接服务器按钮对应的槽
void Cli::on_ConnectBtn_clicked()
{//获取UI界面的信息userName=ui->UserEdit->text();QString hostName = ui->IPEdit->text();quint16 port = ui->PortEdit->text().toUInt();qDebug() << "Connecting to host: " << hostName << " Port: " << port;//调用连接函数到主机//参数1:要连接的服务器主机地址//参数2:端口号//返回值:无socket->connectToHost(hostName,port);//如果连接服务器成功,该客户端回发送一个connected的信号//可以将信号连接到自定义的槽函数中处理相关逻辑//只连接一次 所有可以写在构造函数中
}void Cli::connect_slot()
{QMessageBox::information(this,"成功","连接服务器成功");QString msg = userName + ":进入聊天室";socket->write(msg.toLocal8Bit());
}void Cli::readyRead_slot()
{QByteArray msg = socket->readAll();//将数据展示在UI界面ui->MsgList->addItem(QString::fromLocal8Bit(msg));
}void Cli::on_SendBtn_clicked()
{QString m =ui->MsgEdit->text();QString msg = userName+":"+m;socket->write(msg.toLocal8Bit());ui->MsgEdit->clear();
}void Cli::on_DisBtn_clicked()
{QString msg=userName+":离开聊天室";socket->disconnectFromHost();//断开连接后 会向服务器发送disconnected信号
}void Cli::disconnect_slot()
{QMessageBox::information(this,"断开成功","断开成功");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/102079.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年全国大学生数学建模B题

多波束测线问题 1.问题提出 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c;在不同界面上产生反射&#xff0c;利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信号&#xff0c;并记录从声波发射到信号接…

C#开发的OpenRA游戏之系统参数选项按钮

C#开发的OpenRA游戏之系统参数选项按钮 前面分析了信标按钮,从图上可以看到,靠右边的按钮,就是系统参数选项按钮: 这个按钮与前面三个按钮是不一样的,虽然它们在排列位置上是放在一起,但是处理的方法方式是不一样的,因为这个选项按钮,并不需要发命令给服务器,再返回来…

《Effective STL》读书笔记(二):vector和string

vector 和 string 优先于动态分配数组 当使用new动态分配内存时&#xff0c;我们需要关注以下内容 必须保证动态分配的内存会被delete&#xff0c;否则会造成资源泄露必须确保使用了正确的delete形式。如果分配了单个对象&#xff0c;则必须使用delete&#xff1b;如果分配了…

Python实现猎人猎物优化算法(HPO)优化卷积神经网络分类模型(CNN分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

浅谈能源汽车下乡充电桩建设优化建议及解决方案

1.趋势分析 新能源汽车下乡已经成为提振汽车市场表现、推动汽车行业发展的重要措施。国家发改委日前也提出&#xff0c;汽车消费是支撑消费的“大头”&#xff0c;将加快推进充电桩和城市停车设施建设&#xff0c;大力推动新能源汽车下乡&#xff0c;鼓励汽车企业开发更适宜县…

将目标检测项目移植到linux上出现OSERROR

在windows上运行项目正常&#xff0c;但是在centos9上运行出现找到资源&#xff0c;第一次遇到这个问题&#xff0c;通过代码回找&#xff0c;一步一步发现&#xff0c;读取数据没问题&#xff0c;但是在预测的时候无法读取&#xff0c;查到的资料 说明显示字体问题&#xff0c…

十八、MySQL添加外键?

1、外键 外键是用来让两张表的数据之间建立联系&#xff0c;从而保证数据的一致性和完整性。 注意&#xff0c;父表被关联的字段类型&#xff0c;必须和子表被关联的字段类型一致。 2、实际操作 &#xff08;1&#xff09;初始化两张表格&#xff1a; 子表&#xff1a; 父…

【Apollo学习笔记】——规划模块TASK之PIECEWISE_JERK_NONLINEAR_SPEED_OPTIMIZER(二)

文章目录 TASK系列解析文章OptimizeByNLP1.get_nlp_info()定义问题规模2.get_bounds_info()定义约束边界约束3.get_starting_point()定义初值4.eval_f()求解目标函数5.eval_grad_f()求解梯度6.eval_g()求解约束函数7.eval_jac_g()求解约束雅可比矩阵8.eval_h()求解黑塞矩阵9. f…

刷题笔记18——数组查缺补漏、二分搜索变体

人就是这样的&#xff0c;想来想去&#xff0c;犹豫来犹豫去&#xff0c;觉得自己没有准备好&#xff0c;勇气没攒够&#xff0c;其实只要迈出去了那一步&#xff0c;就会发现其实所有的一切&#xff0c;早就准备好了。——巫哲Q《撒野》 528. 按权重随机选择 轮盘赌 class S…

synchronized 关键字

synchronized是Java中的关键字&#xff0c;它用于实现同步访问共享资源&#xff0c;可解决共享资源竞争问题&#xff0c;以确保多个线程之间共享资源访问的正确性。当一个方法或代码块被声明为synchronized时&#xff0c;只有一个线程可以执行该方法或代码块。其他尝试访问该方…

面试题 17.16. 按摩师

按摩师&#xff08;easy&#xff09; 题目链接: 面试题 17.16. 按摩师 题目描述: 一个有名的按摩师会收到源源不断的预约请求&#xff0c;每个预约都可以选择接或不接。在每次预约服务之间要有休息时间&#xff0c;因此她不能接受相邻的预约。给定一个预约请求序列&#xff0c…

冠达管理:股票退市整理期?

近些年来&#xff0c;随着我国股市的发展&#xff0c;股票市场的出资者逐渐增多。但在出资过程中&#xff0c;退市股票的问题也成为了备受重视的论题。那么&#xff0c;股票退市收拾期到底是什么&#xff1f;如何应对退市股票&#xff1f; 首要&#xff0c;什么是股票退市收拾…