Элемент Qt Svg с процентным размером неправильный размерPython

Программы на Python
Anonymous
Элемент Qt Svg с процентным размером неправильный размер

Сообщение Anonymous »

У меня есть простой SVG-файл, который рисует многоугольник поверх прямоугольника. Размер прямоугольника задан как 100%. Это хорошо выглядит в программах просмотра emacs, inkscape, firefox. Следующий код Python использует PyQt6 для чтения SVG (в командной строке) и отображения его в окне:

Код: Выделить всё

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()
но когда я запускаю python showvg6.py test.svg, прямоугольник не масштабируется до 100 %.
Изображение

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

Вернуться в «Python»