关于qftp的问题,求解答。

whyboysa 2012-07-07 04:22:38
qftp.get(…………); 获取一个文件, 当获取到文件成功后会自动调用qftp的基类信号done(bool), 我通过connect()这个信号,来在自己的曹函数里打印信息好知道我获取ftp上的文件成功了。

前提:我自己封装好一个Qftp的类,并能够实现下载文件的功能。

问题:我把这个封装的类放到自己的应用程序里, get(…………);获取文件后, 移植没有done(bool)信号的触发。 一直找不到原因。

怀疑条件: 我在QWidget的子类里调用了这个qftp类。 但是我的QWidget,调用了事件过滤函数。 是不是能把QFtp里的 done(bool) 信号也给过滤掉了。

谁能提供点思路呢?
...全文
471 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
whyboysa 2012-10-19
  • 打赏
  • 举报
回复
你好,ftp的问题是好久前的了,有点记不清怎么解决的了。 应该是qt是时间循环机制问题所造成。你可以尝试建立一个线程,在线程里面会维护一套事件循环机制的。 如果不行的话你可以试试用三方的ftp库来座。
周末去捉鱼 2012-10-16
  • 打赏
  • 举报
回复
问题怎么定位的?我现在也遇到这个问题,QFtp使用过程中不稳定,一个文件我下载20次便会有一两次下载不下来,感觉是信号或事件丢失,让我对Qt的event机制可靠性产生了疑问,希望这个bug只是QFtp的特例,因为我的应用程序都是基于Qt的,要求可靠性很高
whyboysa 2012-07-16
  • 打赏
  • 举报
回复
qftp 事件队列的问题,还是没有解决。 我采用了外部调用的方法实现的ftp。结贴把。
hi_52rock 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
我监测qftp命令的返回码, 我有4条命令, connectHost() login() cd() get(), 第一次分别返回了 1、2、3、4 第二次 返回了7、8、9、10 那么就说明5、6 这两条命令系统里人为是存在的,而我却没有执行 5、6 这两条命令,导致qftp不认为他的命令队列是空的 所以就不触发done(bool)这个信号。 那么我该 如何找到 5、6 这两条命令是什么命令呢?
……
[/Quote]
文档里面有说明的
Constant Value Description
QFtp::None 0 No command is being executed.
QFtp::SetTransferMode 1 set the transfer mode.
QFtp::SetProxy 2 switch proxying on or off.
QFtp::ConnectToHost 3 connectToHost() is being executed.
QFtp::Login 4 login() is being executed.
QFtp::Close 5 close() is being executed.
QFtp::List 6 list() is being executed.
QFtp::Cd 7 cd() is being executed.
QFtp::Get 8 get() is being executed.
QFtp::Put 9 put() is being executed.
QFtp::Remove 10 remove() is being executed.
QFtp::Mkdir 11 mkdir() is being executed.
QFtp::Rmdir 12 rmdir() is being executed.
QFtp::Rename 13 rename() is being executed.
QFtp::RawCommand 14 rawCommand() is being executed.
whyboysa 2012-07-09
  • 打赏
  • 举报
回复
我监测qftp命令的返回码, 我有4条命令, connectHost() login() cd() get(), 第一次分别返回了 1、2、3、4 第二次 返回了7、8、9、10 那么就说明5、6 这两条命令系统里人为是存在的,而我却没有执行 5、6 这两条命令,导致qftp不认为他的命令队列是空的 所以就不触发done(bool)这个信号。 那么我该 如何找到 5、6 这两条命令是什么命令呢?


whyboysa 2012-07-08
  • 打赏
  • 举报
回复
谢谢你的回复。怎么看?我断点在槽函数上,但根本就不往上跳啊。单独只用自己封装好的qftp是可以跳到槽函数上的。一集成到我的应用程序上就不可以了。
Anitee 2012-07-07
  • 打赏
  • 举报
回复
你QDebug一下,看看为什么没有调用槽函数

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧