Download Data from URL/de: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
'''German''' [[Download Data from URL|English]] [[Download Data from URL Bulgarian|Български]] [[Download Data from URL Korean|한국어]][[Download Data from URL Persian|فارسی]]
[[Category:snippets]]<br />[[Category:HowTo]]<br />[[Category:German]]


=Daten von <span class="caps">URL</span> herunterladen=
[toc align_right=&quot;yes&amp;quot; depth=&quot;2&amp;quot;]


Der folgende Code-Schnippsel demonstriert, wie Daten von einer <span class="caps">URL</span> als [http://doc.qt.io/qt-5.0/qtcore/qbytearray.html QByteArray] ''[qt.io]'' heruntergeladen werden können. Die heruntergeladenen Daten können dann entweder als Datei gespeichert oder in ein passendes Objekt konvertiert werden.<br /> Wird beispielsweise ein Bild heruntergeladen, kann es mit Hilfe der [http://doc.qt.io/qt-5.0/qtgui/qimage.html#loadFromData-2 loadFromData()] ''[qt.io]'' Funktion in ein [http://doc.qt.io/qt-5.0/qtgui/qpixmap.html QPixmap] ''[qt.io]'' oder [http://doc.qt.io/qt-5.0/qtgui/qimage.html QImage] ''[qt.io]'' konvertiert werden.
'''German''' [[Download_Data_from_URL|English]] [[Download_Data_from_URL_Bulgarian|Български]] [[Download_Data_from_URL_Korean|한국어]][[Download_Data_from_URL_Persian|فارسی]]
 
= Daten von URL herunterladen =
 
Der folgende Code-Schnippsel demonstriert, wie Daten von einer URL als &quot;QByteArray&amp;quot;:http://doc.qt.io/qt-5.0/qtcore/qbytearray.html heruntergeladen werden können. Die heruntergeladenen Daten können dann entweder als Datei gespeichert oder in ein passendes Objekt konvertiert werden.<br />Wird beispielsweise ein Bild heruntergeladen, kann es mit Hilfe der &quot;loadFromData()&quot;:http://doc.qt.io/qt-5.0/qtgui/qimage.html#loadFromData-2 Funktion in ein &quot;QPixmap&amp;quot;:http://doc.qt.io/qt-5.0/qtgui/qpixmap.html oder &quot;QImage&amp;quot;:http://doc.qt.io/qt-5.0/qtgui/qimage.html konvertiert werden.


Beachte, dass obwohl der Name der Klasse FileDownloader ist, the heruntergeladenen Daten nicht als Datei auf der Festplatte gespeichert werden.
Beachte, dass obwohl der Name der Klasse FileDownloader ist, the heruntergeladenen Daten nicht als Datei auf der Festplatte gespeichert werden.


==Wichtige Klassen==
== Wichtige Klassen ==
 
* &quot;QNetworkAccessManager&amp;quot;:http://doc.qt.io/qt-5.0/qtnetwork/qnetworkaccessmanager.html
* &quot;QNetworkRequest&amp;quot;:http://doc.qt.io/qt-5.0/qtnetwork/qnetworkrequest.html
* &quot;QNetworkReply&amp;quot;:http://doc.qt.io/qt-5.0/qtnetwork/qnetworkreply.html
* &quot;QUrl&amp;quot;:http://doc.qt.io/qt-5.0/qtcore/qurl.html
 
== .pro Datei ==
 
<code><br />QT ''= network<br /></code><br />Für Symbian Geräte muss der Netzwerkdienst hinzugefügt werden.<br /><code><br />symbian:TARGET.CAPABILITY''= NetworServices<br /></code>
 
== filedownloader.h ==
 
<code><br />#ifndef FILEDOWNLOADER_H<br />#define FILEDOWNLOADER_H
 
#include &lt;QObject&amp;gt;<br />#include &lt;QByteArray&amp;gt;<br />#include &lt;QNetworkAccessManager&amp;gt;<br />#include &lt;QNetworkRequest&amp;gt;<br />#include &lt;QNetworkReply&amp;gt;
 
class FileDownloader : public QObject<br />{<br /> Q_OBJECT<br />public:<br /> explicit FileDownloader(QUrl imageUrl, QObject '''parent = 0);
<br /> virtual ~FileDownloader();
<br /> QByteArray downloadedData() const;
<br />signals:<br /> void downloaded();
<br />private slots:
<br /> void fileDownloaded(QNetworkReply''' pReply);
 
private:
 
QNetworkAccessManager m_WebCtrl;
 
QByteArray m_DownloadedData;
 
};


* [http://doc.qt.io/qt-5.0/qtnetwork/qnetworkaccessmanager.html QNetworkAccessManager] ''[qt.io]''
#endif // FILEDOWNLOADER_H<br /></code>
* [http://doc.qt.io/qt-5.0/qtnetwork/qnetworkrequest.html QNetworkRequest] ''[qt.io]''
* [http://doc.qt.io/qt-5.0/qtnetwork/qnetworkreply.html QNetworkReply] ''[qt.io]''
* [http://doc.qt.io/qt-5.0/qtcore/qurl.html QUrl] ''[qt.io]''


==.pro Datei==
== filedownloader.cpp ==


Für Symbian Geräte muss der Netzwerkdienst hinzugefügt werden.<br />
<code><br />#include &quot;filedownloader.h&amp;quot;


==filedownloader.h==
FileDownloader::FileDownloader(QUrl imageUrl, QObject '''parent) :<br /> QObject(parent)<br />{<br /> connect(&amp;m_WebCtrl, SIGNAL (finished(QNetworkReply*)),<br /> SLOT (fileDownloaded(QNetworkReply*)));
<br /> QNetworkRequest request(imageUrl);<br /> m_WebCtrl.get(request);<br />}
<br />FileDownloader::~FileDownloader()<br />{
<br />}
<br />void FileDownloader::fileDownloaded(QNetworkReply''' pReply)<br />{<br /> m_DownloadedData = pReply-&gt;readAll();<br /> //emit a signal<br /> pReply-&gt;deleteLater();<br /> emit downloaded();<br />}


==filedownloader.cpp==
QByteArray FileDownloader::downloadedData() const<br />{<br /> return m_DownloadedData;<br />}<br /></code>


=Verwendung=
= Verwendung =


==Pixmap von <span class="caps">URL</span> laden==
== Pixmap von URL laden ==


* Slot deklarieren<br />
* Slot deklarieren<br /><code><br />private slots:
* '''downloaded()''' Signal mit Slot verbinden<br />
* QPixmap von den heruntergeladenen Daten laden<br />


===Categories:===
void loadImage();<br /></code><br />* '''downloaded()''' Signal mit Slot verbinden<br /><code><br />QUrl imageUrl(&quot;http://qt.nokia.com/logo.png&amp;quot;);<br />m_pImgCtrl = new FileDownloader(imageUrl, this);


* [[:Category:HowTo|HowTo]]
connect(m_pImgCtrl, SIGNAL (downloaded()), SLOT (loadImage()));<br /></code><br />* QPixmap von den heruntergeladenen Daten laden<br /><code><br />void MainWindow::loadImage()<br />{<br /> QPixmap buttonImage;<br /> buttonImage.loadFromData(m_pImgCtrl-&gt;downloadedData());<br />}
* [[:Category:snippets|snippets]]

Revision as of 10:48, 24 February 2015



[toc align_right="yes&quot; depth="2&quot;]

German English Български 한국어فارسی

Daten von URL herunterladen

Der folgende Code-Schnippsel demonstriert, wie Daten von einer URL als "QByteArray&quot;:http://doc.qt.io/qt-5.0/qtcore/qbytearray.html heruntergeladen werden können. Die heruntergeladenen Daten können dann entweder als Datei gespeichert oder in ein passendes Objekt konvertiert werden.
Wird beispielsweise ein Bild heruntergeladen, kann es mit Hilfe der "loadFromData()":http://doc.qt.io/qt-5.0/qtgui/qimage.html#loadFromData-2 Funktion in ein "QPixmap&quot;:http://doc.qt.io/qt-5.0/qtgui/qpixmap.html oder "QImage&quot;:http://doc.qt.io/qt-5.0/qtgui/qimage.html konvertiert werden.

Beachte, dass obwohl der Name der Klasse FileDownloader ist, the heruntergeladenen Daten nicht als Datei auf der Festplatte gespeichert werden.

Wichtige Klassen

.pro Datei

<br />QT ''= network<br />


Für Symbian Geräte muss der Netzwerkdienst hinzugefügt werden.

<br />symbian:TARGET.CAPABILITY''= NetworServices<br />

filedownloader.h

<br />#ifndef FILEDOWNLOADER_H<br />#define FILEDOWNLOADER_H

#include &lt;QObject&amp;gt;<br />#include &lt;QByteArray&amp;gt;<br />#include &lt;QNetworkAccessManager&amp;gt;<br />#include &lt;QNetworkRequest&amp;gt;<br />#include &lt;QNetworkReply&amp;gt;

class FileDownloader : public QObject<br />{<br /> Q_OBJECT<br />public:<br /> explicit FileDownloader(QUrl imageUrl, QObject '''parent = 0);
<br /> virtual ~FileDownloader();
<br /> QByteArray downloadedData() const;
<br />signals:<br /> void downloaded();
<br />private slots:
<br /> void fileDownloaded(QNetworkReply''' pReply);

private:

QNetworkAccessManager m_WebCtrl;

QByteArray m_DownloadedData;

};

#endif // FILEDOWNLOADER_H<br />

filedownloader.cpp

<br />#include &quot;filedownloader.h&amp;quot;

FileDownloader::FileDownloader(QUrl imageUrl, QObject '''parent) :<br /> QObject(parent)<br />{<br /> connect(&amp;m_WebCtrl, SIGNAL (finished(QNetworkReply*)),<br /> SLOT (fileDownloaded(QNetworkReply*)));
<br /> QNetworkRequest request(imageUrl);<br /> m_WebCtrl.get(request);<br />}
<br />FileDownloader::~FileDownloader()<br />{
<br />}
<br />void FileDownloader::fileDownloaded(QNetworkReply''' pReply)<br />{<br /> m_DownloadedData = pReply-&gt;readAll();<br /> //emit a signal<br /> pReply-&gt;deleteLater();<br /> emit downloaded();<br />}

QByteArray FileDownloader::downloadedData() const<br />{<br /> return m_DownloadedData;<br />}<br />

Verwendung

Pixmap von URL laden

  • Slot deklarieren
    <br />private slots:
    
    void loadImage();<br />
    

    * downloaded() Signal mit Slot verbinden
    <br />QUrl imageUrl(&quot;http://qt.nokia.com/logo.png&amp;quot;);<br />m_pImgCtrl = new FileDownloader(imageUrl, this);
    
    connect(m_pImgCtrl, SIGNAL (downloaded()), SLOT (loadImage()));<br />
    

    * QPixmap von den heruntergeladenen Daten laden

    void MainWindow::loadImage()
    {
    QPixmap buttonImage;
    buttonImage.loadFromData(m_pImgCtrl->downloadedData());
    }