完成qt 的TCP客户端的断开连接

实现部分代码:

cpp 复制代码
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
    ,cli(new QTcpSocket(this))
{
    ui->setupUi(this);
    ui->sendbut->setEnabled(false);
    ui->msgedit->setEnabled(false);
    ui->disconbut->setEnabled(false);
    Widget::connect(cli,&QTcpSocket::connected,this,&Widget::connect_slot);
    Widget::connect(cli,&QTcpSocket::readyRead,this,&Widget::ReadyRead_slot);
//建立断开连接信号和槽函数的信号与槽连接
    Widget::connect(cli,&QTcpSocket::disconnected,this,&Widget::disconnect_slot);
}
//取消按钮按下槽函数
void Widget::on_disconbut_clicked()
{
    //告诉服务器断开连接
    QString msg = usrname + ": 离开聊天室";
    //将数据发送给服务器
    cli->write(msg.toLocal8Bit());
//与服务器断开连接
    cli->disconnectFromHost();
}
//断开连接信号槽函数
void Widget::disconnect_slot()
{
//更新状态栏
    ui->statlab->setText("未连接服务器");
//改变组件使能
    ui->usrnameedit->setEnabled(true);
    ui->sipedit->setEnabled(true);
    ui->sportedit->setEnabled(true);
    ui->sendbut->setEnabled(false);
    ui->msgedit->setEnabled(false);
    ui->disconbut->setEnabled(false);
//清空文本
    ui->msgedit->clear();
    ui->usrnameedit->clear();
    ui->sipedit->clear();
    ui->sportedit->clear();
}

现象:

相关推荐
晚风(●•σ )1 天前
C++语言程序设计——06 字符串
开发语言·c++
晚云与城1 天前
今日分享:C++ -- list 容器
开发语言·c++
兰雪簪轩1 天前
分布式通信平台测试报告
开发语言·网络·c++·网络协议·测试报告
FPGAI1 天前
Qt编程之信号与槽
开发语言·qt
只因在人海中多看了你一眼1 天前
B.50.10.09-RPC核心原理与电商应用
qt·网络协议·rpc
jingfeng5141 天前
C++11可变参数模板、emplace系列接口、包装器
开发语言·c++
Kevinhbr1 天前
CSP-J/S IS COMING
数据结构·c++·算法
蕓晨1 天前
set的插入和pair的用法
c++·算法
金古圣人1 天前
hot100 滑动窗口
数据结构·c++·算法·leetcode·哈希算法
蒹葭玉树1 天前
【C++上岸】C++常见面试题目--算法篇(第二十期)
c++·算法·面试