写在前面:之前说到在开发板上跑起了ubuntu系统之后,相比于原先的系统,简直就是鸟枪换大炮。借助于ubuntu的强大功能,对板子配置起来就太方便了。正好也解决 了之前遗留下来的问题。最近几天都是在调试QT程序。对于新手来说,确实遇到了不少坑,可能是知道的太少了,很多看似简单的问题,都卡了好久。(PS: 最近在做qt就是为了实现和板子的ubuntu系统进行跨平台的配置,也就是在Windows这边能直接访问开发板进行一些处理)。废话不多说,直接开始。
从网上了解到,qt5之后就取消了对QFTP的支持,取而代之的是建议使用QNetworkAccessManager 和 QNetworkReply,因为这些类拥有更简单的API。不过有 时候需要用到如list、cd这些指令的话,QFTP是一个不错的选择。在此感谢博主 “西安一去二三里” 他创的群为:368241647 感谢他在群里对我遇到问题的解 答,下面几篇引用也是出自他的博客,很不错。
1、配置QFTP的库
qt5之后,想要使用qftp就需要添加外部的库文件。以下是我编译过能用的库。链接:http://pan.baidu.com/s/1eSgvvkI 密码:jjll
其中*-lib可以直接使用,若不行的话,就重新编译库文件,请参考:
http://blog.csdn.net/liang19890820/article/details/53304049
2、ubuntu的ftp配置
安装:sudo apt-get install vsftpd
配置:sudo vim /etc/vsftpd.conf
主要修改这两项,其他按需更改:
local_enable = YES
write_enable = YES
开启:service vsftpd restart
3、使用qftp下载文件
一般流程为(实际get的参数可能不一样):
ftp->connectToHost( );
ftp->login( );
ftp->get();
ftp->close();
实际中下载到本地的时候需要注意get的参数
等待下载完成后,记得file-->close关闭文件。
qftp更多使用方法,请参考:
http://blog.csdn.net/liang19890820/article/details/53318906?winzoom=1
4、需要注意的问题
出现下载的文件为空(0kB)的情况
这是因为QFTP是异步传输,当使用get指令下载时,需要等待文件下载结束后,在执行file-->close关闭下载的文件,不能在get指令后面直接就file-->close。
这样就会出现文件出现失败的情况。正确的做法应该是,放在个信号事件后面,等待下载结束后,在file-->close.