PyQt, как преобразовать QPainterPath в QPixmap?

Я искал в Интернете и не мог найти хороший способ сделать это. Мне нужно преобразовать QPainterPath в QPixmap. Это возможно? Если да, то как это будет сделано? Спасибо!


person CSforStructuralEngineer    schedule 20.11.2018    source источник


Ответы (1)


Идея состоит не в том, чтобы преобразовать QPainterPath в QPixmap, а в том, чтобы нарисовать QPainterPath в QPixmap, как показано ниже:

from PyQt5 import QtCore, QtGui, QtWidgets

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)

    adjust_to_content = True

    path = QtGui.QPainterPath()
    path.addRect(20, 20, 60, 60)
    path.moveTo(0, 0)
    path.cubicTo(99, 0,  50, 50,  99, 99)
    path.cubicTo(0, 99,  50, 50,  0, 0)

    r = path.boundingRect()
    s = r.size().toSize()
    pixmap = QtGui.QPixmap(s if adjust_to_content else QtCore.QSize(640, 480))
    pixmap.fill(QtCore.Qt.white)
    painter = QtGui.QPainter(pixmap)
    painter.setRenderHint(QtGui.QPainter.Antialiasing)
    painter.setPen(QtGui.QPen(QtGui.QColor("green")))
    painter.translate(-r.topLeft())
    painter.drawPath(path)
    painter.end()

    label = QtWidgets.QLabel(pixmap=pixmap, alignment=QtCore.Qt.AlignCenter)
    label.show()
    sys.exit(app.exec_())

введите здесь описание изображения

person eyllanesc    schedule 20.11.2018