有没有办法在QToolTip中显示图片/图像?
我想显示键盘按钮的小图像,以向用户解释他可以在该特定小部件上使用哪些按钮/快捷方式.
您可以使用以下HTML代码轻松显示图像:
QToolTip::showText(QCursor::pos(), "Message", this, QRect(), 5000);
此示例将显示工具提示,其中包含来自Qt资源的图像和文本5秒.
有关详细信息,您可以看到以下视频:https://youtu.be/X9JD8gKGZ00
EDIT1:
如果要从内存中显示图像,可以将QImage/QPixmap保存到内存中(最好使用像PNG这样的无损压缩)并将其转换为base 64并使用html代码加载它,如下所示:
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("Message").arg(QString(data.toBase64())); QToolTip::showText(QCursor::pos(), html, this, QRect(), 5000);
Edit2:修正了@Damon Lynch建议的html字符串.
关于HTML字符串,Python 3/PyQt相当于user2014561在内存映像中显示的优秀解决方案是这样的,假设一个QPixmap(一个QImage将工作相同):
buffer = QBuffer() buffer.open(QIODevice.WriteOnly) pixmap.save(buffer, "PNG", quality=100) image = bytes(buffer.data().toBase64()).decode() html = ''.format(image)