gpt4 book ai didi

python - 带有交互式 SVG 图像的 pyQt

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:54 24 4
gpt4 key购买 nike

我如何将交互式 SVG 文件添加到 QGraphicsScene?我可以添加交互式 SVG 文件,但它只是显示为静态图像。我正在阅读有关 QGraphicsWebView 的内容,但无法弄清楚如何向其中添加 SVG 文件并且缺少示例。

让我更具体地说明我要找的东西。假设我有一个绘制框的 SVG 文件。当我将鼠标悬停在该框上时,我想更改颜色以触发悬停事件。我必须编辑文件并重新绘制图像吗?感觉应该有一种方法可以用 Qt 处理交互式 SVG 文件。

最佳答案

我遇到了同样的问题,您的问题为我指明了正确的方向(使用 QGraphicsWebView())。解决方法其实很简单:

import sys
from PyQt4 import QtCore, QtGui, QtSvg
from PyQt4.QtWebKit import QGraphicsWebView
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)

scene = QtGui.QGraphicsScene()
view = QtGui.QGraphicsView(scene)

br = QtSvg.QGraphicsSvgItem("C:\your_interactive_svg.svg").boundingRect()

webview = QGraphicsWebView()
webview.load(QtCore.QUrl("C:\your_interactive_svg.svg"))
webview.setFlags(QtGui.QGraphicsItem.ItemClipsToShape)
webview.setCacheMode(QtGui.QGraphicsItem.NoCache)
webview.resize(br.width(), br.height())

scene.addItem(webview)
view.resize(br.width()+10, br.height()+10)
view.show()
sys.exit(app.exec_())

它非常适合我(脚本和其他东西)。

如您所见,我还将我的 svg 加载为 QGraphicsSvgItem,因为我不知道其他获取 svg 大小的方法。

关于python - 带有交互式 SVG 图像的 pyQt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com