3

私は持っている:

self.setScene(QtGui.QGraphicsScene(self))
self.setTransformationAnchor(QtGui.QGraphicsView.AnchorUnderMouse)
self.setDragMode(QtGui.QGraphicsView.ScrollHandDrag)

自己はどこにありますかQGraphicsView。次のような対話性があるため、QGraphicsWebView() で svg を開いています。

s = self.scene()
s.clear()
self.resetTransform()

self.webview = QGraphicsWebView()
self.webview.load(QtCore.QUrl(path_to_my_svg))
self.webview.setFlags(QtGui.QGraphicsItem.ItemClipsToShape)
self.webview.setCacheMode(QtGui.QGraphicsItem.NoCache)
self.webview.setZValue(0)
s.addItem(self.webview)

ズームは正常に機能しますが、webview アイテムをクリックしてドラッグすると、カーソルがテキスト カーソルに変わる以外は何も起こりません。svg を開いたときにのみドラッグできますself.svgItem = QtSvg.QGraphicsSvgItem(path_to_my_svg) が、その場合は静的イメージとしてレンダリングされるため、svg での対話性が失われます (svg 要素のマウスオーバー、マウスアウト)...

xndrmeのコメントに基づいて編集:

彼が提案したように、SHIFT + マウスの左クリックはうまく機能しますが、内部にある SVG 全体をドラッグしますself.webview。どうやらマウススクロールでズームするとsvgがズームされると思っていたようですが、実際にself.webviewはズームされてスクロールバーが表示されるのです。だから、私が実際に知る必要があるのはself.webview、スクロールバーの境界内で全体をドラッグする方法です(マウスの左クリックで)

4

0 に答える 0