[Qt] Pobieranie pliku

0

Witam,
mam problem z pobieraniem pliku tekstowego w moim programie.
Pobieranie odbywa się w taki sposób:

void okno::download(const QUrl &url, QString filename)
{
    QHttp http;
     QEventLoop loop;
     QFile file;
     connect(&http, SIGNAL(done(bool)), &loop, SLOT(quit()));

     file.setFileName(filename);
     file.open(QIODevice::WriteOnly);

     http.setHost(url.host(), url.port(80));
     http.get(url.toEncoded(QUrl::RemoveScheme | QUrl::RemoveAuthority),
 &file);
     
     loop.exec();
     file.close();
}

Mogę ściągnąć plik tylko po włączeniu programu, drugi raz już nie, gdyż wywala: "QWaitCondition: Destroyed while threads are still waiting".
Probowalem to zrobic na rozne inne sposoby, ale bez skutku. Wiem, że w tym komunikacie tkwi problem. Jeśli zostawie program na dluzszy czas, moge ponownie pobrac plik. Wymagane jest, aby ta procedura mogla byc wykonywana w odstepach minimum 5s.

0

Możliwe że chodzi o to że każde pobieranie powinno odbywać się niezależnie w wątkach. W twoim wypadku musisz czekac na zakończenie pobierania i jego wątków aby mozna było pobierać nowy plik. Błąd mówi że pewne wątki czekały na zdarzenie a zostały zniszczone. Moim zdaniem to właśnie o to chodzi.

0

Pliki miały po 4kB, max 4 linijki tekstu.
Problem tkwił gdzie indziej jednak.
Wysyłałem zapytanie do bazy sql query.exec("select.. where id = ...");
jednak nie ustawiałem pozycji na pierwszym odebranym rekordzie.
Rozwiazaniem jest query.next();

Głupi blad strasznie i zmarnowane 6h. Zdarza sie

1 użytkowników online, w tym zalogowanych: 0, gości: 1