Код: Выделить всё
Код: Выделить всё
from PyQt6.QtWidgets import QWidget, QVBoxLayout, QGraphicsView, QGraphicsScene, QApplication
from PyQt6.QtSvgWidgets import QGraphicsSvgItem
from PyQt6.QtSvg import QSvgRenderer
import sys
class PlotPanel(QWidget):
def __init__(self, svgpath, parent=None):
super().__init__(parent)
layout = QVBoxLayout(self)
self.scene = QGraphicsScene()
self.view = QGraphicsView(self.scene)
layout.addWidget(self.view)
data = open(svgpath).read()
self.renderer = QSvgRenderer(bytes(data, "UTF-8"))
self.svg = QGraphicsSvgItem()
self.svg.setSharedRenderer(self.renderer)
self.scene.addItem(self.svg)
app = QApplication(sys.argv)
svgpath = sys.argv[1]
window = PlotPanel(svgpath)
window.show()
app.exec()

Похоже, откуда-то получено значение по умолчанию 100x100, и я думаю, что я необходимо установить размер чего-либо в какой-то момент кода, чтобы он знал истинный размер холста. Или я делаю что-то в неправильном порядке?
Замена 100% на 400 работает, поэтому, если проценты не могут работать, я посмотрю, сможет ли восходящий источник этих вещей сгенерировать это вместо этого.