c++ - 从 base64 字符串加载 QIcon
问题描述
是否可以从 base64 字符串创建QIcon ?
我看到我们可以将 base64 字符串加载到QByteArray中。我看到我们可以从 QPixMap 创建一个 QIcon。
使用它,我尝试了以下方法:
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);
它没有显示任何东西。
PS:你可以在这里尝试base64图像。
解决方案
代替
QPixmap pixmap;
pixmap.fromImage(image);
和
QPixmap pixmap = QPixmap::fromImage(image);
这是返回新像素图的静态函数。
推荐阅读
- java - Restlet 服务器设置为 JSON
- ide - 在包含多行比较器的插值中添加缩进
- typo3 - 在 Typo3 10.x WITH 编辑器中使用 Flexform-FAL Image
- python - 当有人通过回调 url 将内容发回给我时,我如何重定向到另一个页面
- r - 如何在ggplot的直方图条上打印频率
- git-lfs - LFS 未跟踪的文件上的“git lfs lock”应该做什么?
- regex - 正则表达式检查一个数字是否在字符串中重复
- vb.net - DateTimePicker 的 MonthCalendar 的日期未更新
- salt-stack - 您可以使用映射文件而不是 Pillar 将参数传递给 SaltStack 公式吗?
- c++ - 在 Visual Studio Code 中使用 CMake 设置调试模式时出错