首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QToolTip中使用图片或图像

在QToolTip中使用图片或图像
EN

Stack Overflow用户
提问于 2015-12-15 17:51:01
回答 2查看 6.5K关注 0票数 8

有办法在QToolTip中显示图片/图像吗?

我想显示键盘按钮的小图像,以解释用户可以在特定的小部件上使用哪些按钮/快捷方式。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-15 22:36:26

您可以使用以下html代码轻松地显示图像:

代码语言:javascript
复制
QToolTip::showText(QCursor::pos(), "<img src=':/icon.png'>Message", this, QRect(), 5000);

此示例将显示一个工具提示,其中包含来自Qt资源和文本的图像,时间为5秒。

有关更多细节,您可以看到以下视频:https://youtu.be/X9JD8gKGZ00

Edit1:

如果要从内存中显示图像,可以将QImage/QPixmap保存到内存中(最好使用一些无损压缩,如PNG),并将其转换为基本64,并使用html代码加载它,如下所示:

代码语言:javascript
复制
QImage icon = QImage(10, 10, QImage::Format_ARGB32);
icon.fill(QColor(255, 0, 0, 100));
QByteArray data;
QBuffer buffer(&data);
icon.save(&buffer, "PNG", 100);
QString html = QString("<img src='data:image/png;base64, %0'>Message").arg(QString(data.toBase64()));
QToolTip::showText(QCursor::pos(), html, this, QRect(), 5000);

Edit2:更正了html字符串,就像@Damon建议的那样。

票数 16
EN

Stack Overflow用户

发布于 2016-01-17 09:46:08

关于HTML,Python3/ PyQt等价于user2014561在内存中显示图像的优秀解决方案如下所示,假设一个QPixmap ( QImage将同样工作):

代码语言:javascript
复制
buffer = QBuffer()
buffer.open(QIODevice.WriteOnly)
pixmap.save(buffer, "PNG", quality=100)
image = bytes(buffer.data().toBase64()).decode()
html = '<img src="data:image/png;base64,{}">'.format(image)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34296100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档