[Qt-interest] Images in tooltips

Pritam Ghanghas pritam_ghanghas at infosys.com
Thu Dec 30 12:53:37 CET 2010


> > newsletters at philippberger.de a écrit :
> > >> I need to display images in tooltips. But the images can't be stored as
> > >> internal resources or on the local disk - they're dynamically computed
> > >> and stored as QImage instances.
> >  > [...]
> > > 
> > > Easy enough using some HTML hacks :)
> > > I wrote a small function that will convert your QImage to a QString you
> > > can embed into a tooltip:
> > > 
> > > QString getImageAsText(const QImage AImage) {
> > > 	QByteArray ba;
> > > 	QBuffer buffer(&ba);
> > > 	buffer.open(QIODevice::WriteOnly);
> > > 	AImage.save(&buffer, "PNG");
> > > 	return QString("<img
> > > src=\"data:image/png;base64,%1\">").arg(QString(buffer.data().toBase64()));
> > > }
> > 
> > Philipp, that's simply brilliant, works great :-)
> > 
> > Thanks a lot for this nice trick.
> > 
> 
> Hi,
> 
> I tried this. Didn't work for me. I am appending a small code snippet
> almost same as yours. Tootip shows some blank placeholder image instead
> of actual image. I have set the image onto label just to show that image
> was loaded. Do you see anything wrong in it? 
> 
> #include <QtGui>
> 
> int main(int argc, char * argv[])
> {
>     QApplication app(argc, argv);
> 
>     QImage image("/usr/share/icons/Human/32x32/actions/sleep.png");
>     QByteArray ba;
>     QBuffer buffer(&ba);
>     buffer.open(QIODevice::WriteOnly);
>     image.save(&buffer, "PNG");
>     QString imgStr = QString("<img src=\"data:image/png;base64,%1
> \">").arg(QString(buffer.data().toBase64()));
> 
> 
>     QLabel label2;
>     label2.setPixmap(QPixmap::fromImage(image));
>     label2.resize(100,100);
>     label2.show();
>     label2.setToolTip(imgStr);
> 
>     app.exec();
> }
> 
> 

Sorry, it works on other machines. It seems something is broken on my
machine.

-- 
Thanks,
Pritam


**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely 
for the use of the addressee(s). If you are not the intended recipient, please 
notify the sender by e-mail and delete the original message. Further, you are not 
to copy, disclose, or distribute this e-mail or its contents to any other person and 
any such actions are unlawful. This e-mail may contain viruses. Infosys has taken 
every reasonable precaution to minimize this risk, but is not liable for any damage 
you may sustain as a result of any virus in this e-mail. You should carry out your 
own virus checks before opening the e-mail or attachment. Infosys reserves the 
right to monitor and review the content of all messages sent to or from this e-mail 
address. Messages sent to or from this e-mail address may be stored on the 
Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***



More information about the Qt-interest-old mailing list