Download Data from URL/bg: Difference between revisions
Jump to navigation
Jump to search
AutoSpider (talk | contribs) (Convert ExpressionEngine links) |
AutoSpider (talk | contribs) (Decode HTML entity names) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{Cleanup | reason=Auto-imported from ExpressionEngine.}} | {{Cleanup | reason=Auto-imported from ExpressionEngine.}} | ||
[[Category:HowTo]] | [[Category:HowTo]] | ||
'''Български''' [[Download_Data_from_URL|English]] [[Download_Data_from_URL_Korean|한국어]][[Download_Data_from_URL_Persian|فارسی]] | '''Български''' [[Download_Data_from_URL|English]] [[Download_Data_from_URL_Korean|한국어]][[Download_Data_from_URL_Persian|فارسی]] | ||
Приложеният отрязък от код показва как се свалят данни като [http://doc.qt.io/qt-5.0/qtcore/qbytearray.html QByteArray] от URL (адрес на даден ресурс в Интернет или друга мрежа). Свалените данни могат да бъдат записани като файл или да бъдат преобразувани в подходящ обект. Така например, ако е свалена картинка, то тя може да бъде заредена от [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/qtgui/qimage.html#loadFromData-2 loadFromData()] | Приложеният отрязък от код показва как се свалят данни като [http://doc.qt.io/qt-5.0/qtcore/qbytearray.html QByteArray] от URL (адрес на даден ресурс в Интернет или друга мрежа). Свалените данни могат да бъдат записани като файл или да бъдат преобразувани в подходящ обект. Така например, ако е свалена картинка, то тя може да бъде заредена от [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/qtgui/qimage.html#loadFromData-2 loadFromData()] | ||
Line 81: | Line 76: | ||
QObject(parent) | QObject(parent) | ||
{ | { | ||
connect(& | connect(&m_WebCtrl, SIGNAL (finished(QNetworkReply*)), | ||
SLOT (fileDownloaded(QNetworkReply*))); | SLOT (fileDownloaded(QNetworkReply*))); | ||
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. |
Приложеният отрязък от код показва как се свалят данни като QByteArray от URL (адрес на даден ресурс в Интернет или друга мрежа). Свалените данни могат да бъдат записани като файл или да бъдат преобразувани в подходящ обект. Така например, ако е свалена картинка, то тя може да бъде заредена от QPixmap или QImage чрез метода loadFromData()
Моля, обърнете внимание, че приложения клас FileDownloader независимо от името си не запазва свалените данни на диска като файл!
Важни класове
.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;
}
Употреба
Заредете QPixmap от URL
- Декларирайте слот
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());
}