简体   繁体   English

从 base64 字符串加载 QIcon

[英]Load QIcon from base64 string

Is it possible to create a QIcon from a base64 string?是否可以从 base64 字符串创建QIcon

I see we can load base64 strings into a QByteArray .我看到我们可以将 base64 字符串加载到QByteArray中。 And I see we can create a QIcon from a QPixMap.我看到我们可以从 QPixMap 创建一个 QIcon。

Using that, I have tried the following:使用它,我尝试了以下方法:

const QByteArray data = QByteArray::fromBase64("iVBORw0KGgoAAAANSUhEUgAAAB8AAAAlCAYAAAC6TzLyAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAALfSURBVFiF5ZY9TFNRFMd/77WFDnx0ogaInRRKApudQE1gcwFhMijOFp2VBOOE7tDFwYjAJmiiToBRu7VbTfjaSqBJnfrB8Gj73nV47Xu2BV6/CAbO8vLuu/f8/uece8+7UiaTFVyQyRcFvlxwLbKGtrtR8Xx7o8Dq+hxqeAmcrTjcvUiubss1jYvc2aY/lTS51WcVLWkY3DY0jXT9FgAivo26Pne+8NL6OiYWoLkFADW8ZFn/muG5Ly/IrT4l93XGHHS2YZ8ImHO+zSASB42Fa9EQ2p4elRb5RG5lCpSU7tDjwzbk1yda1L8muOzx4ZhcNFKsRUNkVx4j4ltA5fWX6mqvSors8hTiz47+7mzFPr6A7PGBkiITGIbjIwDs4/PIPSPFQdQMBnC24ZhcRO4fzYtJk1uZQousnVj/QmkKZpudffmqIpCSIvv2HihppPZOpMK5tjcbEYn9MADa3ndEMobN98gcz2UQsQjywJjhsuK0q6FF1I03xrs8MIZt8ElRJ9Mia+TWXxuplj0+7OPzZD9OQ/IQ+8Q8kruvergWWUMNBhDJWNG4PDCG3D+q1xkQ8S2yy1OGAMntxTbyHNnda3bBauGWIjw+5EG/sdmMjdjcQpN/swxcE9wQsbuBGv5g1Nlw6PZi8z1EvjGMGlxAHhgtSnVD4IaIaAg1uFAuwtWF/cH7M/9u1nAlRfbdfSR3L1KHF9njQ+roKUujSBygBgNovz/rjts7cfg3z3RtCdeiIb19li50dRULKnS0vAj55nBZUyk1y8uEiG+fPJ44RCQOYXcTNZgX5Pbqgq55LcFQEvmvnz+MD7fv3M1DDhDJmC7iOI0WDYGSNlvqKdY0s32qz4JZRi65uvVNkz/HtiHzm4hvIZQjxH4IlBRafAeSh2XH8DSr6w4nufuQwBRW5XpLeGbOW70qzLSfZZfn3l6tWaa9kvTVav9n5P+ez/Oyq7vh6v6l1mNXN+0XCv8Le+BNIvhmHeEAAAAASUVORK5CYII=");

QImage image;
image.loadFromData(data, "PNG");

QPixmap pixmap;
pixmap.fromImage(image);

QIcon icon(pixmap);

QPushButton* button = new QPushButton(this);
button->setIcon(icon);

It's not showing anything.它没有显示任何东西。

PS: you can try the base64 image here . PS:您可以在此处尝试 base64 图像。

Replace代替

QPixmap pixmap; 
pixmap.fromImage(image);

with

QPixmap pixmap = QPixmap::fromImage(image);

This is static function that returns new pixmap.这是返回新像素图的 static function。

No need for QImage , though: you can create the pixmap directly from the byte array不过,不需要QImage :您可以直接从字节数组创建像素图

QPixmap pixmap;
pixmap.loadFromData(data);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM