Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Qt] Pobieranie plików

Ostatnio zmodyfikowano 2012-12-05 15:43
Autor Wiadomość
kubawal
Temat założony przez niniejszego użytkownika
[Qt] Pobieranie plików
» 2012-12-04 20:15:58
Witam!

Wie ktoś, jak używając (tylko) biblioteki QT, napisać funkcję, pobierającą plik z podanego URL i zapisującą go na dysk?
Chodzi mi mniej więcej o odpowiednik funkcji URLDownloadToFile() z WinAPI.
Szukałem w Google, ale nie znalazłem nic konkretnego.
P-70351
DejaVu
» 2012-12-05 00:26:21
A jakie funkcje znalazłeś do pobierania plików z neta za pomocą Qt?
P-70361
madmike44
» 2012-12-05 10:35:57
P-70366
kubawal
Temat założony przez niniejszego użytkownika
» 2012-12-05 15:18:35
Napisałem to sobie tak:

C/C++
void Download( QString filename, QUrl adr )
{
    QHttp http;
    QEventLoop loop;
    QFile file;
    connect( & http, SIGNAL( done( bool ) ), & loop, SLOT( quit() ) );
   
    file.setFileName( filename );
    file.open( QIODevice::WriteOnly );
   
    http.setHost( adr.host(), adr.port( 80 ) );
    http.get( adr.toEncoded( QUrl::RemoveScheme | QUrl::RemoveAuthority ), & file );
}

Ale przy linkowaniu wyskakują mi błędy:

undefined reference to '_imp___ZN5QHttpC1EP7QObject'
undefined reference to `_imp___ZN5QHttp7setHostERK7QStringt'
undefined reference to `_imp___ZN5QHttp3getERK7QStringP9QIODevice'
undefined reference to `_imp___ZN5QHttpD1Ev'
undefined reference to `_imp___ZN5QHttpD1Ev'
collect2: ld returned 1 exit status

Jakby co, to plik *.pro mam taki:

#-------------------------------------------------
#
# Project created by QtCreator 2012-12-04T15:24:41
#
#-------------------------------------------------

QT       += core gui
QT       += core gui webkit
CONFIG  += network

TARGET = Pobieraj
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += \
    mainwindow.ui \
    dialog.ui

RESOURCES += \
    rc.qrc

Wie ktoś, jak to naprawić?
P-70368
kubawal
Temat założony przez niniejszego użytkownika
» 2012-12-05 15:43:18
Ok, już jest dobrze.
Wystarczyło w pliku *.pro dodać:
QT += network
P-70369
« 1 »
  Strona 1 z 1