PyQT: нарисовать QPainterPath() прямо?

  1. В Qt, если вы используете QPainter.drawText(), вы можете передайте строку символов, которую вы хотите нарисовать, и координаты ограничивающего прямоугольника в качестве аргумента. Однако при рисовании пути с помощью QPainter.drawPath() вы не можете просто указать ограничивающий прямоугольник или координаты, в которые должен вписаться путь.
    Существует ли встроенный метод QPainterPath, чтобы он помещался внутри ограничивающего прямоугольника или координат? ? Или мне нужно программировать соответствующий перевод и масштабирование вручную?

  2. Кроме того, как мне создать QPixmap из QPainterPath заданного размера?

Что я пытаюсь сделать: у меня есть объект шрифта, который содержит векторные координаты и хотел бы рисовать его глифы. У меня уже есть функция, которая создает QPainterPath() из объекта Font. Это для редактора шрифтов.

Спасибо, что заглянули.


person blameless75    schedule 25.04.2015    source источник


Ответы (1)


Что ж, отвечая себе на первую часть вопроса: нужно изменить не путь, а рисовальщик, вы можете сохранить его состояние, затем перевести, масштабировать и т. Д., Затем нарисовать свой путь и восстановить его состояние впоследствии. Например.:

            painter.save()
            painter.translate(0,-self.squareSize)
            painter.scale(factor, -factor)
            painter.fillPath(glyph, Qt.black)
            painter.restore()
person blameless75    schedule 25.04.2015
comment
Можете ли вы уточнить и объяснить об этом? Мой красный Qpainterpath должен появиться на прямоугольнике 10-го дня, но я не понимаю, как его поместить внутрь: image.prntscr.com/image/28ogDnFJR-yQ4u3xXELA3g.png - person Saelyth; 10.12.2018