Download Data from URL/ko: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(Decode HTML entity names)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''English''' [[Download Data from URL Bulgarian|Български]] [[Download Data from URL Korean|한국어]]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}


=URL에서 데이터 다운로드받기=
[[Category:HowTo]]


아래 코드는 어떻게 하면 [http://ko.wikipedia.org/wiki/URL <span class="caps">URL</span>] ''[ko.wikipedia.org]'' 로부터 자료를 다운로드 받아 [http://doc.qt.io/qt-5.0/qtcore/qbytearray.html QByteArray] ''[qt.io]'' 에 저장할 수 있는지를 보여주고 있습니다.<br /> 다운로드된 자료는 파일로 저장할 수도 있고, 적절한 객체(object)의 형태로 전환(convert)할 수도 있습니다. 예를 들어, 만약 그림을 다운로드하였다면, 이를 각각 객체의 [http://doc.qt.io/qt-5.0/qtgui/qimage.html#loadFromData-2 loadFromData()] ''[qt.io]'' 메서드를 이용하여 [http://doc.qt.io/qt-5.0/qtgui/qpixmap.html QPixmap] ''[qt.io]'' 혹은 [http://doc.qt.io/qt-5.0/qtgui/qimage.html QImage] ''[qt.io]'' 로 전환할 수 있습니다.
'''English''' [[Download_Data_from_URL_Bulgarian|Български]] [[Download_Data_from_URL_Korean|한국어]]


예제 클래스 “FileDownloader“의 이름이 ‘File-Downloader’이지만, 실제 다운로드된 데이터를 파일로 저장하지는 않습니다. (역자 주: 물론 method를 추가하면 저장할 수 있습니다)
= URL에서 데이터 다운로드받기 =


==주요 클래스==
아래 코드는 어떻게 하면 [http://ko.wikipedia.org/wiki/URL URL] 로부터 자료를 다운로드 받아 [http://doc.qt.io/qt-5.0/qtcore/qbytearray.html QByteArray] 에 저장할 수 있는지를 보여주고 있습니다.
다운로드된 자료는 파일로 저장할 수도 있고, 적절한 객체(object)의 형태로 전환(convert)할 수도 있습니다. 예를 들어, 만약 그림을 다운로드하였다면, 이를 각각 객체의 [http://doc.qt.io/qt-5.0/qtgui/qimage.html#loadFromData-2 loadFromData()] 메서드를 이용하여 [http://doc.qt.io/qt-5.0/qtgui/qpixmap.html QPixmap] 혹은 [http://doc.qt.io/qt-5.0/qtgui/qimage.html QImage] 로 전환할 수 있습니다.


* [http://doc.qt.io/qt-5.0/qtnetwork/qnetworkaccessmanager.html QNetworkAccessManager] ''[qt.io]''
예제 클래스 "FileDownloader"의 이름이 'File-Downloader'이지만, 실제 다운로드된 데이터를 파일로 저장하지는 않습니다. (역자 주: 물론 method를 추가하면 저장할 수 있습니다)
* [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 파일==
== 주요 클래스 ==
 
* [http://doc.qt.io/qt-5.0/qtnetwork/qnetworkaccessmanager.html QNetworkAccessManager]
* [http://doc.qt.io/qt-5.0/qtnetwork/qnetworkrequest.html QNetworkRequest]
* [http://doc.qt.io/qt-5.0/qtnetwork/qnetworkreply.html QNetworkReply]
* [http://doc.qt.io/qt-5.0/qtcore/qurl.html QUrl]
 
== .pro 파일 ==
 
<code>
QT ''= network
</code>


만약 심비안(Symbian) 장치에 네트워크 기능을 추가하려면 다음 코드를 추가해야 합니다.
만약 심비안(Symbian) 장치에 네트워크 기능을 추가하려면 다음 코드를 추가해야 합니다.


==filedownloader.h==
<code>
symbian:TARGET.CAPABILITY''= NetworkServices
</code>
 
== filedownloader.h ==
 
<code>
#ifndef FILEDOWNLOADER_H
#define FILEDOWNLOADER_H
 
#include <QObject>
#include <QByteArray>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
 
class FileDownloader : public QObject
{
Q_OBJECT
public:
explicit FileDownloader(QUrl imageUrl, QObject '''parent = 0);
 
virtual ~FileDownloader();
 
QByteArray downloadedData() const;
 
signals:
void downloaded();


==filedownloader.cpp==
private slots:


=사용법=
void fileDownloaded(QNetworkReply''' pReply);


==URL에서 Pixmap 불러오기==
private:
 
QNetworkAccessManager m_WebCtrl;
 
QByteArray m_DownloadedData;
 
};
 
#endif // FILEDOWNLOADER_H
</code>
 
== filedownloader.cpp ==
 
<code>
#include "filedownloader.h"
 
FileDownloader::FileDownloader(QUrl imageUrl, QObject '''parent) :
QObject(parent)
{
connect(&m_WebCtrl, SIGNAL (finished(QNetworkReply*)),
SLOT (fileDownloaded(QNetworkReply*)));
 
QNetworkRequest request(imageUrl);
m_WebCtrl.get(request);
}
 
FileDownloader::~FileDownloader()
{
 
}
 
void FileDownloader::fileDownloaded(QNetworkReply''' pReply)
{
m_DownloadedData = pReply->readAll();
//emit a signal
pReply->deleteLater()
emit downloaded();
}
 
QByteArray FileDownloader::downloadedData() const
{
return m_DownloadedData;
}
</code>
 
= 사용법 =
 
== URL에서 Pixmap 불러오기 ==


* 슬롯 선언하기
* 슬롯 선언하기


* 시그널 *downloaded()*를 슬롯에 연결하기
<code>
private slots:
 
void loadImage();
</code>
 
* 시그널 *downloaded()'''를 슬롯에 연결하기
 
<code>
QUrl imageUrl("http://qt.nokia.com/logo.png");
m_pImgCtrl = new FileDownloader(imageUrl, this);


* 다운로드된 데이터에서 QPixmap 읽어들이기
connect(m_pImgCtrl, SIGNAL (downloaded()), SLOT (loadImage()));
</code>


===Categories:===
''' 다운로드된 데이터에서 QPixmap 읽어들이기


* [[:Category:HowTo|HowTo]]
<code>
* [[:Category:snippets|snippets]]
void MainWindow::loadImage()
{
QPixmap buttonImage;
buttonImage.loadFromData(m_pImgCtrl->downloadedData());
}
</code>

Latest revision as of 17:11, 12 March 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

English Български 한국어

URL에서 데이터 다운로드받기

아래 코드는 어떻게 하면 URL 로부터 자료를 다운로드 받아 QByteArray 에 저장할 수 있는지를 보여주고 있습니다. 다운로드된 자료는 파일로 저장할 수도 있고, 적절한 객체(object)의 형태로 전환(convert)할 수도 있습니다. 예를 들어, 만약 그림을 다운로드하였다면, 이를 각각 객체의 loadFromData() 메서드를 이용하여 QPixmap 혹은 QImage 로 전환할 수 있습니다.

예제 클래스 "FileDownloader"의 이름이 'File-Downloader'이지만, 실제 다운로드된 데이터를 파일로 저장하지는 않습니다. (역자 주: 물론 method를 추가하면 저장할 수 있습니다)

주요 클래스

.pro 파일

QT ''= network

만약 심비안(Symbian) 장치에 네트워크 기능을 추가하려면 다음 코드를 추가해야 합니다.

symbian:TARGET.CAPABILITY''= NetworkServices

filedownloader.h

#ifndef FILEDOWNLOADER_H
#define FILEDOWNLOADER_H

#include <QObject>
#include <QByteArray>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>

class FileDownloader : public QObject
{
 Q_OBJECT
public:
 explicit FileDownloader(QUrl imageUrl, QObject '''parent = 0);

 virtual ~FileDownloader();

 QByteArray downloadedData() const;

signals:
 void downloaded();

private slots:

 void fileDownloaded(QNetworkReply''' pReply);

private:

QNetworkAccessManager m_WebCtrl;

QByteArray m_DownloadedData;

};

#endif // FILEDOWNLOADER_H

filedownloader.cpp

#include "filedownloader.h"

FileDownloader::FileDownloader(QUrl imageUrl, QObject '''parent) :
 QObject(parent)
{
 connect(&m_WebCtrl, SIGNAL (finished(QNetworkReply*)),
 SLOT (fileDownloaded(QNetworkReply*)));

 QNetworkRequest request(imageUrl);
 m_WebCtrl.get(request);
}

FileDownloader::~FileDownloader()
{

}

void FileDownloader::fileDownloaded(QNetworkReply''' pReply)
{
 m_DownloadedData = pReply->readAll();
 //emit a signal
 pReply->deleteLater()
 emit downloaded();
}

QByteArray FileDownloader::downloadedData() const
{
 return m_DownloadedData;
}

사용법

URL에서 Pixmap 불러오기

  • 슬롯 선언하기
private slots:

void loadImage();
  • 시그널 *downloaded()를 슬롯에 연결하기
QUrl imageUrl("http://qt.nokia.com/logo.png");
m_pImgCtrl = new FileDownloader(imageUrl, this);

connect(m_pImgCtrl, SIGNAL (downloaded()), SLOT (loadImage()));

다운로드된 데이터에서 QPixmap 읽어들이기

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