• 6809阅读
  • 4回复

QHttp::requestFinished() [复制链接]

上一主题 下一主题
离线style
 
只看楼主 倒序阅读 楼主  发表于: 2006-09-13
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
QHttp::requestFinished() //[signal]

我的QHttp结束时,并没有发送这个signal ?这个signal不是http结束时发送的吗?

/*-----------------------------------------------------这是我的代码*/
#include "downclass.h"

DownWindow::DownWindow()
{
    http = new QHttp(this);
    setupUi(this);
    connect(pushButton, SIGNAL(clicked()), this, SLOT(downButtonSlot()));
    connect(http, SIGNAL(requestFinished (int id, bool error)), this, SLOT(httpFinishSlot(int id, bool error)));
}

void DownWindow::downButtonSlot()
{
  pushButton->setEnabled(false);
  QUrl url(lineEdit->text());
  QFileInfo info(url.path());
  file = new QFile(info.fileName());
  file->open(QIODevice::WriteOnly);

  http->setHost(url.host());
  result = http->get(url.path(), file);
}

void DownWindow::httpFinishSlot(int id, bool error) //下载结束并没有执行这个函数
{
  QMessageBox::information(this, "prompt", "The file down over");
  if (error)
  {
          file->remove();
          file->close();
          delete file;
          file = NULL;
          return;
  }
  file->close();
  delete file;
  file = NULL;
}

void DownWindow::closeSlot()
{
  file->close();
  delete file;
  close();
}
/*********************/
[ 此贴被XChinux在2006-09-14 19:26重新编辑 ]
离线coordinates
只看该作者 1楼 发表于: 2006-09-14
现在不知道你是怎么确定你的HTTP结束了?
可不可以看一下现在的状态?可以用QHttp::state ()!
离线style
只看该作者 2楼 发表于: 2006-09-14
result = http->get(url.path(), file);
//get得到url.path()文件, get到最后的eof()就结束啊...
离线style
只看该作者 3楼 发表于: 2006-09-14
请问:
SIGNAL(requestFinished (int id, bool error)),

是不是http->get(url.path(), file) 下载文件下载完后就emit的?

我测试了一下,感觉不是的.

而文档上说明这个signal就是get结束就emit...

奇怪
离线blf0
只看该作者 4楼 发表于: 2007-10-29
connect(http, SIGNAL(requestFinished (int id, bool error)), this, SLOT(httpFinishSlot(int id, bool error)));

connect(http, SIGNAL(requestFinished (int, bool)), this, SLOT(httpFinishSlot(int, bool)));
快速回复
限100 字节
 
上一个 下一个