自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 收藏
  • 关注

原创 网盘—下载文件

本文主要讲解网盘文件操作的下载文件部分,具体步骤如下:目录1、实施步骤2、代码实现2.1、添加下载文件的协议2.2、添加下载文件函数2.3、添加信号槽2.4、实现槽函数2.5、设置download状态2.6、添加定义2.7、服务器接收数据2.8、添加下载文件的case2.9、测试——看一下客户端是否可以得到文件名和大小A、点击下载文件,保存在桌面B、终端输出,文件名字和大小2.10、提取文件名和大小2.11、收数据2.12、服务器怎么发数据2.12、发送文件给客户端2.13、定义定时器,关联信号槽2.14、

2024-05-01 05:30:00 287

原创 网盘——删除常规文件

/获得当前所在的目录//获得点击删除的文件//判断QMessageBox::warning(this,"删除文件","请选择要删除的文件");else//列表上面的文件名称//路径太长了,放在caMsg里面,名字就放在caData里面//发送给服务器free(pdu);pdu=NULL;

2024-04-30 04:30:00 123

原创 网盘—上传文件

/当前路径//选择上传文件会弹出一个窗口来,类似于打开文件//将名字提取出来if(!//将数据封装到PDU里面//获得文件大小//"%s %lld" %s文件名 lld文件大小long long 64//发送//发送给服务器free(pdu);pdu=NULL;else {QMessageBox::warning(this, "上传文件","上传文件名字不能为空!");//先关了,要不然他会重新计时if(!

2024-04-29 06:45:00 693 1

原创 网盘——返回上一级

测试//判断当前目录是不是顶层目录QMessageBox::warning(this, "返回上一级","返回失败,已经在最开始的文件夹目录中!");else {//返回上一级定义当前路径//判断当前目录是不是顶层目录QMessageBox::warning(this, "返回上一级","返回失败,已经在最开始的文件夹目录中!");else//将新的路径保存到当前目录里面//将进入的子文件夹给清除掉,因为上一层的话,要显示上一层的信息,使用刷新的功能就可以了。

2024-04-28 05:30:00 326

原创 网盘——进入文件夹

/通过index获得双击的选项上面的内容//测试打印//发送给服务器free(pdu);pdu=NULL;

2024-04-27 06:30:00 245

原创 网盘——文件重命名

/获得当前所在的目录//获得点击重命名的文件//判断QMessageBox::warning(this,"重命名文件","请选择要重命名的文件");else//获得旧的文件名字//获得新的的文件名字QString strNewName = QInputDialog::getText(this,"重命名文件","请输入新的文件名");if(!//存放//路径太长了,放在caMsg里面,名字就放在caData里面//发送给服务器free(pdu);pdu=NULL;

2024-04-26 05:15:00 224

原创 网盘——删除文件夹

ENUM_MSG_TYPE_DELETE_DIR_REQUEST, //删除目录请求ENUM_MSG_TYPE_DELETE_DIR_RESPOND, //删除目录回复。

2024-04-25 06:00:00 463

原创 网盘——查看文件

/文件名字//文件类型。

2024-04-24 05:15:00 344

原创 网盘——文件操作之创建文件夹

关于创建文件夹,具体步骤如下:目录1、具体步骤2、代码实现2.1、注册的时候2.1.1、引入头文件2.1.2、创建注册用户名的目录2.2、注册后,在已经创建的情况下,创建子文件夹2.2.1、再登录的时候,获得该文件夹目录。使用成员遍历记录当前所在的文件夹2.2.2、创建文件夹A、添加创建文件夹的槽函数B、关联创建文件夹C、添加创建文件夹的定义D、在客户端添加当前路径函数E、添加创建文件夹协议F、在当前文件夹下面创建一个新的文件夹 G、在服务器端创建创建文件夹的请求H、客户端创建文件夹回复3、测试A、当我们注

2024-04-23 05:30:00 849

原创 网盘——文件操作之界面设计

关于网盘实现部分,文件操作包含三个部分:界面设计、文件夹操作、常规文件操作。本文主要讲解界面设计,后续文章后讲解后两部分。

2024-04-22 06:15:00 308

原创 网盘——群聊功能实现

A、客户端A发送群聊信息请求(发送的信息包括用户名,聊天信息)B、服务器转发给所有在线的好友。C、好友接收信息并显示。

2024-04-21 05:15:00 553

原创 网盘——私聊

if(NULL!//显示窗口elseQMessageBox::warning(this,"私聊","请选择私聊的对象");

2024-04-20 05:00:00 387

原创 网盘——删除好友

if(NULL!//通过ListWidget里获得当前的Item,再通过Item获得当前的文本//通过socket将pdu发送给服务器free(pdu);pdu=NULL;删除好友的时候,我们要先在好友列表里面选上要删除的好友,必须选上,否则不予以删除。

2024-04-19 05:30:00 299

原创 网盘——刷新好友列表

/产生一个listreturn;//先判断里面有多少个人i<uiSize;i++)

2024-04-18 05:30:00 349

原创 解决QtCreator不能同时运行多个程序的方法

当我们运行QtCreator代码的时候,往往一个代码,可能需要打开好几个运行,但是会出现的情况就是,如果打开了一个界面,当我么再运行的时候,第一个界面就没有了,而且可能会出现终端报错的情况,那我们如何解决呢?

2024-04-17 06:30:00 257

原创 网盘——添加好友

B、当服务器收到请求之后,服务器将数据库中在线用户查找出来,如果客户端B已经是你的好友了,服务器告诉客户端A他已经是你的好友了。在这里只是将自己名字发送过去了,对方的名字也是需要发送过去的,服务器收到pdu的时候是要转发给对方的。在resend里面,使用的是原来的pdu,但是原来的pdu消息类型还是friend request,所以说接收方那边需要对这两种消息类型进行判断。其中reSend的函数定义如下,这个是一个转发的函数,也就是将对方的名字传过来pername,pdu进行转发。

2024-04-16 10:11:16 786

原创 网盘——搜索用户

/查找用户一共会出现三种情况:查找的人不存在,查找的人存在并且在线,查找的人存在但是不在线。return -1;//通过名字去数据库查看对应的记录//查看是否在线return 1;return 0;

2024-04-13 05:00:00 431

原创 网盘——显示在线用户

/如果m_ponline是隐藏的,我们将他打开//产生协议数据单元//将请求信息发送出去//释放free(pdu);pdu = NULL;//每32个给他拷贝出来i

2024-04-12 06:30:00 296

原创 网盘——登录跳转

产生一个静态的操作界面的对象。操作界面这个对象他是静态的,不管调用多少次这个函数,始终使用的都是这个instance。

2024-04-11 07:00:00 246

原创 网盘——好友,图书界面设计

/如果m_ponline是隐藏的,我们将他打开else {

2024-04-10 07:30:00 969

原创 如何使用校园网——Win10笔记本,台式机互开热点

当我们使用校园网的时候,往往只能连接一个电脑端,但是又想两个机子同时连接WIFI怎么办呢?当然,前提条件是你先得其中一台电脑有网络哈。

2024-04-09 07:00:00 268

原创 Win10底部状态栏卡死,点不动,Win10状态栏没反应

当我们好久没有关闭电脑的时候,当再次开机可能会发生Win10状态栏卡死的情况,怎么解决呢?

2024-04-08 09:40:30 158

原创 网盘——客户端登陆注册注销请求

/最小的//注册ENUM_MSG_TYPE_REGIST_REQUEST, //注册请求ENUM_MSG_TYPE_REGIST_RESPOND, //注册回复//登录ENUM_MSG_TYPE_LOGIN_REQUEST, //登录请求ENUM_MSG_TYPE_LOGIN_RESPOND, //登录回复//将要执行的语句放在caQuery里面//考虑形参的有效性//拼接一个查询语句//必须三个条件都满足//select * 返回的是一个结果集。

2024-03-26 08:30:00 964

原创 网盘——数据库操作

在服务器端创建数据库操作类不管在哪里想要用的时候,直接通过单例的对象就可以快速地使用就是把它定义一个静态的成员函数//定义单例,就是把它定义成静态的成员函数,在静态成员函数里面,再定义一个静态的对象,每次通过类名调用静态成员函数的时候,使用静态的局部成员(局部变量),就可以使用到同一个对象。private://localhost本地,远程就写远程的ip。

2024-03-25 05:15:00 689

原创 网盘——通讯协议设计

int a;int b;int c;}PDU;int d[];运行得到结果还是12,实际上并没有占据空间,因为我们并没有对他进行分配空间/*sizeof(PDU)只会计算 以下的大小//总的协议数据单元大小//消息类型,数据是干嘛的//文件名//实际消息长度*///所以总的数据大小就是前面的,加上实际大小//清空一下//结束程序//重置return pdu;//定义槽函数。

2024-03-24 09:55:23 694

原创 网盘——客户端服务器搭建

QMessageBox::information(this, "连接服务器", "连接服务器成功");//单例模式到后面凡是需要用到MyTcpServer的时候,直接通过类名getInstance获得静态的局部对象来进行操作,无论调用多少次,有且仅有一个对象//到后面凡是需要用到MyTcpServer的时候,直接通过类名getInstance获得静态的局部对象来进行操作,无论调用多少次,有且仅有一个对象。

2024-03-24 04:00:00 1645

原创 linux虚拟机和Windows安装QSQLite3

首先进入官网下载提取码:fann。

2024-03-23 06:30:00 499

原创 QObject::connect: Cannot queue arguments of type ‘int64_t‘(Make sure ‘int64_t‘ is registered using

Qt运行出现这类错误QObject::connect: Cannot queue arguments of type 'int64_t'在main函数QApplication a(argc, argv);一般是因为没有注册类型,要去注册数据,也就是打开你的main.cpp文件。

2024-03-22 02:30:00 320

原创 QObject::connect: Cannot queue arguments of type ‘cv::Mat&‘(Make sure ‘cv::Mat&‘ is registered usin

Qt运行出现这类错误QObject::connect: Cannot queue arguments of type 'cv::Mat&'一般是因为没有注册类型,要去注册数据,也就是打开你的main.cpp文件。在main函数里面写。

2024-03-21 03:30:00 490

原创 VM虚拟机如何使用_TCP&UDP网络工具

链接:TCP&UDP软件提取码:5ogi在使用TCP&UDP网络测试工具之前,需要直到这几个信息。

2024-03-20 05:30:00 568

原创 C++Qt学习——QFile、QPainter、QChart

QFont font;int offset;//用变量接受文字的宽度QPen pen;//启动 ms//定时X毫秒offset+=1;//特别重要,重新配置。

2024-03-19 06:00:00 1841

原创 C++Qt学习——QLineEdit、QDialog、QScrollArea、QTabWidget、QListWidget

在本文里面,主要介绍这几种控件的使用QLineEdit、QDialog、QScrollArea、QTabWidget、QListWidget。并且举例子。

2024-03-18 07:15:00 1226

原创 C++Qt学习布局管理——margin&padding、QHBoxLayout、QVBoxLayout、QGridLayout、QSplitter、QSpacer

这一节主要是关于C++Qt学习的几个UI控件的学习,分别为:margin&padding(外边距&内边距)、QHBoxLayout(水平布局)、QVBoxLayout(垂直布局)、QGridLayout(网格布局)、QSplitter(分裂器)、QSpacer(隔离弹簧)

2024-03-17 05:00:00 1976

原创 C++Qt学习——QPushButton、QRadioButton(单选按钮)、QCheckBox(复选按钮)

注意想打印语句的话必须引入头文件,而且如果使用toggled的话,必须将Push Button改成可选的注意想打印语句的话必须引入头文件。注意想打印语句的话必须引入头文件。

2024-03-16 04:30:00 1703

原创 C++Qt学习——qss文件的使用

当我们使用好多控件,比如QLabel和PushButtun的时候,会设置不一样的style,如果每次都在widget.cpp里面写的话,代码会很不好看,这也就是qss文件存在的意义。

2024-03-15 06:45:00 488

原创 C++Qt学习——添加资源文件

可以发现这两个的区别就是一个显示不全,一个可以全部展示。

2024-03-14 04:45:00 696

原创 C++Qt学习——不用UI文件编程

在创建文件的时候不要选中Generate form这块创建的文件如下图所示,比起之前的没有了form这一快。

2024-03-13 06:00:00 398

原创 C++Qt学习——Qt信号槽

在应用中,OBject是所有Qt类的基类,因此可以将上面的话换成定义函数。

2024-03-12 06:00:00 875

原创 C++ Qt学习——Qt启动流程

注意:所有都不要出现中文,避免不必要的麻烦。

2024-03-11 07:00:00 876

原创 MySQL锁

锁是计算机协调多个进程或线程并发访问某一资源的机制(其实也就是说,例如打开多个终端会话,当某一个终端对数据进行写或读的时候如何协调)。在数据库中,除传统的计算资源(CPU、RAM、I/O)以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。所以说,锁对数据库而言是十分重要的。MySQL中的锁,按照锁的粒度分,分为以下三类 A、全局锁:锁定数据库中的是所有表(力度最大) B、表级

2024-03-10 07:00:00 2058

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除