Qt5编译使用QFtp
使用 QNetworkAccessManager 可以实现 Ftp 的上传/下载功能(参考:Qt之FTP上传/下载),但有些原本 QFtp 有的功能 QNetworkAccessManager 却没有提供,例如:list、cd、remove、mkdir、rmdir、rename 等。这种情况下,就不得不使用 QFtp,值得庆幸的是 QFtp 一直在维护,只需要下载源码自行编译即可使用。
- 简述
- QFtp
- 下载
- 配置
- 使用
QFtp
下载
从 GitHub 下载 QFtp:
或者使用命令下载 :
完成之后,可以看到 qtftp 中包含源码及示例。
配置
下面,以 MSVC为例。
打开 qtftp.pro,将默认配置:
CONFIG += static
CONFIG -= shared改为:
CONFIG += staticlib
CONFIG += shared这样,生成
*.dll的同时也会生成*.lib。编译 QFtp,完成之后会在 lib 文件夹下生成
*.lib、*.dll、*.prl文件。- 将 Qt5Ftpd.lib、Qt5Ftp.lib、Qt5Ftpd.prl、Qt5Ftp.prl 拷贝至 D:\Qt\Qt5.5.1\5.5\msvc2013\lib。
- 将 Qt5Ftpd.dll、Qt5Ftp.dll 拷贝至 D:\Qt\Qt5.5.1\5.5\msvc2013\bin。
- 将 qftp.h、qurlinfo.h 拷贝至 D:\Qt\Qt5.5.1\5.5\msvc2013\include\QtNetwork,并新建一个名为 QFtp 的文件(没有后缀名),然后用本写入
#include "qftp.h"。
完成之后,就可以使用 QFtp 了。
使用
在 pro 中添加 QFtp 库:
CONFIG(debug, debug|release) {
LIBS += -lQt5Ftpd
} else {
LIBS += -lQt5Ftp
}- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
例如,如果要连接并登录到 FTP 服务器,这是简单的实现:
#include <QFtp> // ...
QFtp *ftp = new QFtp(parent);
ftp->connectToHost("192.168.***.***", 21); // 主机:192.168.***.*** 端口号:21
ftp->login("wang", "123456"); // 用户名:wang 密码:123456
// ...- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
首先使用 connectToHost() 连接 FTP 服务器,然后通过 login() 登录到 FTP 服务器。登录成功之后,就可以调度其他操作(例如:list()、cd()、get()、put()、remove()、mkdir()、rmdir()、rename() 和 rawCommand())了。
Qt5编译使用QFtp的更多相关文章
- Qt5编译oracle驱动教程
我们都知道oracle数据库的强大,并且好多企业或者教学用到数据库时都会推荐使用.但是Qt因为版权问题没有封装oracle数据库专用驱动,网上也有一大堆说法和教程,但是或多或少的都有问题.下面废话不多 ...
- Qt5编译项目出现GL/gl.h:No such file or directory错误
编译在Ubuntu12.04下安装了Qt5.1.1,在编译工程的时候出现了如下错误:“GL/gl.h:No such file or directory”,查了一下资料发现这个问题由于系统中没有安装O ...
- Qt5 编译 & 打包依赖dll发布
十年前学C++的时候,无聊到把windows 文件夹下几乎所有的*.dll 都看过一遍.偶尔在程序运行时看到缺少 *.dll 的提示,都会直接找出来解决. 随着“开发平台”和“编译器”版本的逐年升级, ...
- opencv3.1+cmake+mingw5.3+QT5编译
太不容易了! 想要访问opencv的官网貌似要FQ才行.下载了opencv3.2版本,发现cmake在download opencv_ffmpeg.dll的地方超时了. 于是搜索一番,发现很多编译op ...
- Qt5.编译错误.error: C2338: The slot requires more arguments than the signal provides.
1.Qt563x86vs2015,遇到如下 编译错误: error: C2338: The slot requires more arguments than the signal provides. ...
- Ubuntu16.04 QT5编译出现cannot find -lGL和collect2:error:ld r
在ubuntu下使用Qt 编译时候遇上了cannot find -lGL错误,使用命令 是由于系统缺少链接库,在终端执行下面命令就可以解决问题. sudo apt-get install libqt4 ...
- Qt5编译error01
1.Qt551x86 vs2013 1.1.“error: C2001: 常量中有换行符” 问题还原:源码:“QString str = tr("已接收 %1MB (%2MB/s) \n共% ...
- QT5 编译提示 cannot find GL/gl.h ubuntu16.04
安装软件: sudo apt-get install mesa-common-dev sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
- 中标麒麟QT5编译出现:cannot find -lGL 和 collect2:error:ld returned 1 exit status 错误
sudo yum install mesa-libGL-devel mesa-libGLU-devel
随机推荐
- CSV (逗号分隔值文件格式)
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序列,不 ...
- SQL Select选择
SQL Select(选择) 语法 SELECT 语法用于从数据库中选择数据. 返回的数据存储在结果表中,称为结果集. SQL SELECT 语法 SELECT column1, column2, . ...
- Java中链接MS SQL 数据库用法详解
一.第一种方法: 使用JDBC-ODBC的桥方式 JDBC-ODBC桥连接器是用JdbcOdbc.class 和一个用于访问ODBC驱动程序的本地库实现的,对于Windows平台,该本地库是一个动态链 ...
- Linux系统磁盘分区、删除分区、格式化、挂载、卸载、开机自动挂载的方法总结
Linux系统按照MBR(Master Boot Record)传统分区模式: 注意:传统的MBR(Master Boot Record)分区方式最大只能分2T容量的硬盘,超过2T的硬盘一般采用GPT ...
- 一:unittest框架配合selenium工具之CSS_selector定位。
做了自动化测试这么久了,一直没有梳理到元素定位这一块的内容,其重要性不言而喻.趁着周末有时间,梳理一下. 1,通过id定位 driver.find_element_by_css_selector(&q ...
- dubbo使用multicast注册方式消费者无法发现服务的一种情况(我遇到的情况)
今天做dubbo测试的时候,翻出以前的代码,使用multicast广播地址的方式消费者居然无法发现服务.我的情况是因为启用了vmware虚拟机的网卡,导致了消费者无法发现服务,禁用vmware网卡后可 ...
- idea无法引用jar包中的class
最近由eclipse换idea的过程中,出现了一个很奇妙的问题! 项目是maven+git+idea管理的,idea某次在使用的过程中,电脑死机重启后,发现无法引用jar包中的class.包括jdk中 ...
- jeecg随笔 -- 实体关联属性的设计
转载:https://www.iteye.com/blog/1868620 在jeecg 里 ,是根据数据库生成实体的,很多关联关系需要自己进行进一步整理才能满足我们的业务需求 例如外键关系 由于很多 ...
- Jeecg 切换默认首页方法
类名: org.jeecgframework.core.enums.SysThemesEnum
- 4、APP FPS测试
什么是FPS FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数.FPS是测量用于保存.显示动态视频的信息数量.每秒钟帧数愈多,所显示的动作就会愈流畅.通常,要避免动作不 ...