当前位置: 首页 > wzjs >正文

英文网站定制公司什么叫网站降权

英文网站定制公司,什么叫网站降权,四川遂宁做网站的公司,网站建设销售问答Qt实现文件传输客户端 1、 客户端UI界面设计2、客户端2.1 添加网络模块和头文件2.2 创建Tcp对象2.3 连接按钮2.3.1 连接按钮连接信号与槽2.3.2 连接按钮实现 2.4 读取文件2.4.1 连接读取文件的信号与槽2.4.2 读取文件槽函数实现2.5 进度条2.5.1 设置进度条初始值2.5.2 初始化进…

Qt实现文件传输客户端

  • 1、 客户端UI界面设计
  • 2、客户端
  • 2.1 添加网络模块和头文件
  • 2.2 创建Tcp对象
  • 2.3 连接按钮
    • 2.3.1 连接按钮连接信号与槽
    • 2.3.2 连接按钮实现
  • 2.4 读取文件
  • 2.4.1 连接读取文件的信号与槽
  • 2.4.2 读取文件槽函数实现
  • 2.5 进度条
    • 2.5.1 设置进度条初始值
    • 2.5.2 初始化进度条
    • 2.5.3 更新进度条
  • 2.6 传输成功
  • 3、 头文件和.cpp文件
    • 3.1 头文件
    • 3.2 .cpp文件
  • 4、 仓库地址
  • 5、总结

记录自己对于Qt实现文件传输客户端的学习过程,方便自己日后回顾,也可以给别人提供参考借鉴。服务器端在主页另外一篇博客

1、 客户端UI界面设计

在这里插入图片描述

2、客户端

2.1 添加网络模块和头文件

在这里插入图片描述
在这里插入图片描述

2.2 创建Tcp对象

private:Ui::Widget *ui;QTcpSocket *tcpSocket;          //声明Tcp对象指针

在这里插入图片描述

tcpSocket = new QTcpSocket(this);       //创建客户端Tcp对象

在这里插入图片描述

2.3 连接按钮

2.3.1 连接按钮连接信号与槽

右键连接按钮,选择转到槽

在这里插入图片描述

选择clicked()

在这里插入图片描述

2.3.2 连接按钮实现

//连接按钮
void Widget::on_connectPushButton_clicked()
{QString ip = ui->ipLineEdit->text();      //获取ipquint16 port = ui->portLineEdit->text().toUInt();       //获取端口tcpSocket->connectToHost(ip,port);          //连接服务器
}

2.4 读取文件

2.4.1 连接读取文件的信号与槽

创建槽函数
void readFileHandle();                      //读取文件处理           

在这里插入图片描述

连接信号与槽
connect(tcpSocket,&QTcpSocket::readyRead,this,&Widget::readFileHandle);     //连接读取文件的信号与槽

在这里插入图片描述

2.4.2 读取文件槽函数实现

定义一个文件发送成功状态
bool isFileMes;        //文件读取信息

在这里插入图片描述

isFileMes = true;      //读取的是文件信息

在这里插入图片描述

创建文件所需对象,记得添加头文件
QFile file;                     //创建文件对象QString fileName;               //文件名字
qint64 fileSize;                //文件大小
qint64 recFileSize;           //接收文件大小

在这里插入图片描述

实现槽函数
//读取文件
void Widget::readFileHandle()
{QByteArray message = tcpSocket->readAll();          //接收信息if(isFileMes==true)//发送过来的是文件信息{//1、接收文件信息并拆包//hello##1024 拆包fileName = QString(message).section("##",0,0);        //获取文件名,hellofileSize = QString(message).section("##",1,1).toInt();        //获取文件大小,1024//2、创建文件设置为只写file.setFileName(fileName);       //创建文件bool isOpen = file.open(QIODevice::WriteOnly);if(isOpen == false){QMessageBox::warning(this,"打开文件","文件打开失败");tcpSocket->disconnectFromHost();        //断开连接tcpSocket->close();             //关闭}}else        //接收的是文件内容{qint64 length = file.write(message);recFileSize += length;if(recFileSize == fileSize){QMessageBox::information(this,"接收文件","接收文件完毕");}}
}

2.5 进度条

2.5.1 设置进度条初始值

ui->sendprogressBar->setValue(0);          //设置进度条初始值

2.5.2 初始化进度条

//初始化进度条
//初始化进度条
ui->sendprogressBar->setMaximum(100);     //设置进度条最大值,qint64->int
ui->sendprogressBar->setValue(0);               //设置当前值

2.5.3 更新进度条

//更新进度条
int progress = static_cast<int>((recFileSize * 100) / fileSize);
ui->sendprogressBar->setValue(progress);   

2.6 传输成功

在这里插入图片描述

3、 头文件和.cpp文件

3.1 头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTcpSocket>
#include <QFile>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_connectPushButton_clicked();          //连接按钮void readFileHandle();                      //读取文件处理private:Ui::Widget *ui;QTcpSocket *tcpSocket;          //声明Tcp对象指针bool isFileMes;        //文件读取信息QFile file;                     //创建文件对象QString fileName;               //文件名字qint64 fileSize;                //文件大小qint64 recFileSize;           //接收文件大小};
#endif // WIDGET_H

3.2 .cpp文件

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//    this->setWindowFlag(Qt::FramelessWindowHint);       //去窗口this->setAttribute(Qt::WA_TranslucentBackground);   //半透明背景tcpSocket = new QTcpSocket(this);       //创建客户端Tcp对象isFileMes = true;      //读取的是文件信息ui->sendprogressBar->setValue(0);          //设置进度条初始值connect(tcpSocket,&QTcpSocket::readyRead,this,&Widget::readFileHandle);     //连接读取文件的信号与槽
}Widget::~Widget()
{delete ui;
}//连接按钮
void Widget::on_connectPushButton_clicked()
{QString ip = ui->ipLineEdit->text();      //获取ipquint16 port = ui->portLineEdit->text().toUInt();       //获取端口tcpSocket->connectToHost(ip,port);          //连接服务器
}//读取文件
void Widget::readFileHandle()
{QByteArray message = tcpSocket->readAll();          //接收信息if(isFileMes==true)//发送过来的是文件信息{//1、接收文件信息并拆包//hello##1024 拆包QString masgStr = QString::fromUtf8(message);fileName = masgStr.section("##",0,0);        //获取文件名,hellofileSize = masgStr.section("##",1,1).toLongLong();        //获取文件大小,1024//2、创建文件设置为只写file.setFileName(fileName);       //创建文件bool isOpen = file.open(QIODevice::WriteOnly);if(isOpen == false){QMessageBox::warning(this,"打开文件","文件打开失败");tcpSocket->disconnectFromHost();        //断开连接tcpSocket->close();             //关闭}//初始化进度条ui->sendprogressBar->setMaximum(100);     //设置进度条最大值,qint64->intui->sendprogressBar->setValue(0);               //设置当前值recFileSize = 0; // 重置接收文件大小isFileMes = false;      //转换标志}else        //接收的是文件内容{qint64 writelength = file.write(message);if(writelength != message.size()){QMessageBox::warning(this, "错误", "文件写入失败");file.close();tcpSocket->disconnectFromHost();return;}recFileSize += writelength;//更新进度条int progress = static_cast<int>((recFileSize * 100) / fileSize);ui->sendprogressBar->setValue(progress);   if(recFileSize == fileSize){QMessageBox::information(this, "成功", "文件接收完成");file.close();isFileMes = true; // 重置标志位,准备接收下一个文件tcpSocket->disconnectFromHost(); // 断开连接或保持连接根据需求}}
}

4、 仓库地址

代码仓库地址

5、总结

以上就是实现Qt实现文件传输客户端的整个过程了,服务端在另外一篇博客,浏览过程中,如若发现错误,欢迎

大家指正,有问题的可以评论区留言或者私信。最后,如果大家觉得有所帮助,可以点一下赞,谢谢大家!世界

扑朔迷离,愿我们保持冷静,继续前行!
http://www.dtcms.com/wzjs/617704.html

相关文章:

  • 湖北省级建设主管部门网站网站建设不好
  • 免费网站排名优化南宁市建设工程造价信息网
  • php网站的优势广元建设机械网站
  • 网站 建设 毕业设计 要求中国电信全渠道运营中心
  • 华侨城网站开发wordpress采集网站
  • 网站竞价 英文网站后台如何上传图片
  • 北京燕华工程建设有限公司网站工程网站建设方案
  • 电子商务网站建设特色0基础如何快速做网站
  • 企业网站建设的层次网页制作与网站建设思维导图
  • 张家界做网站找哪家好免费源码分享网站
  • 专做立体化的网站超级优化空间
  • 柬埔寨做网站网站是用什么语言写的
  • python开发微信小程序金融seo公司
  • 搭建网站哪个好学 网站开发
  • 长春市网站制作公司asp网站首页模板
  • 网站建设 设计创意wordpress迷
  • 福建网站开发招聘怎么加入平台卖货
  • windows2008 iis网站 指定域名公众号内容制作步骤
  • 网博士自助建站系统下载百度打开百度搜索
  • 网站开发可选择的方案有哪些资阳网站推广
  • 做网站设计需要什么软件做网站seo的公司
  • 客户为什么要做网站伪静态网站入侵
  • 网站建设简介是什么意思行业网站模版
  • 网站建设与思想阵地Wordpress热门评论插件
  • 网站建设教学大纲宿迁网络科技有限公司
  • 艺术设计专业灵感推荐网站广州营销课程培训班
  • 我怎么打不开建设银行的网站买手表去哪个网站买是正品的
  • 安顺市住房与城乡建设局网站共享办公商业租赁网站模板
  • 旅游网站怎么做的健身网站开发项目总结
  • 怎么给网站做访问量wordpress 自定义分页