[Qt-interest] QPixmap from URL
Andreas Diehl
krokodiehl at t-online.de
Sun Feb 1 12:57:33 CET 2009
Hello and thanks for those hints.
Finally, I managed to read the web address via QHttp and QTemporaryFile.
Sadly using QBuffer didn't work although I don't know why, because data from
QHttp was put into the buffer but loading a pixmap from it didn't do.
Using a temp file did the job and I'm happy with it. Here's my code (QtJambi
4.4.3):
void loadImage(String imagePath)
{
//check for local file
if ( QFile.exists(imagePath) )
{
m_Pixmap = new QPixmap(imagePath);
return;
}
//web file
QUrl imgURL = new QUrl(imagePath);
m_Http = new QHttp( imgURL.host() );
m_TempFile = new QTemporaryFile();
if ( !m_TempFile.open(OpenModeFlag.ReadWrite )
{
//error handling
return;
}
m_Http.done.connect(this, "slotFinished(boolean)");
m_Http.get(imgURL.path(), m_TempFile);
} //void loadImage(String)
void slotFinished(boolean error)
{
//some error handling
m_Pixmap = new QPixmap( m_TempFile.fileName() );
m_Http.close();
m_TempFile.close();
} //void slotFinished(boolean)
I left out some error handling code but the above is all you need and it
works at least for my project.
Regards,
Andreas
----- Original Message -----
From: "Scott Aron Bloom" <Scott.Bloom at sabgroup.com>
To: <qt-interest at trolltech.com>
Sent: Saturday, January 31, 2009 7:53 PM
Subject: Re: [Qt-interest] QPixmap from URL
>> From: qt-interest-bounces at trolltech.com [mailto:qt-interest-
>> bounces at trolltech.com] On Behalf Of Ferenc Stelcz
>> Sent: Saturday, January 31, 2009 9:31 AM
>> To: qt-interest at trolltech.com
>> Subject: Re: [Qt-interest] QPixmap from URL
>>
>> Andreas Diehl wrote:
>> > Hello all.
>> >
>> > I've got a QLabel which should display a QPixmap. Loading the pixmap
> from a
>> local path works fine, but using a web address doesn't do. Here's my
> code
>> (using Qt 4.4.3 and QtJambi):
>> >
>> Hello Andreas!
>>
>> Maybe QPixmap-s can't be constructed from web URLs.
>> In _theory_ I would try to create a QTemporaryFile, then get the
>> contents of the image at the URL into it (with QHttp's get() method)
>> then pass this temp file to a QPixmap ctor. In theory... :)
>>
>> /replied to the wrong address../
>
> Correct...
>
> You will need to download the information yourself and construct the
> bitmap...
>
> Instead of a temp file.. you could also get it to a QByteArray and
> construct the the pixmap from there.
>
> Scott
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
More information about the Qt-interest-old
mailing list