QFtp属于QT4版本的产物,使用QT5版本时,如果用QTcreator编译有QFtp的源码是没有问题的;如果需要用到vs编译器编译,就会提示未定义类型“QFtpPrivate”的方法。解决方法如下:
要使用QFtp,需要将QFtp源码文件:qftp.h qftp.cpp qurlinfo.h qurlinfo.cpp加入到工程中,直接进行编译。用vs编译器时,由于有些类的声明放在了qftp.cpp里面,并且这些类是从qobject继承下来,需要用到信号槽的,也即是说,这些类必须经过moc工具编译的。因此在qt5版本中,用vs编译,如果这些需要经过moc工具编译的类在cpp文件中声明,moc工具会查找不到,无法在moc.cpp中为该类生成对应的类,故要将这些类的声明,统统挪到.h中,然后把.cpp文件末的导入moc头文件给注释掉,即可。
//#include "qftp.moc"
//#include "moc_qftp.cpp"