Я пишу небольшую программу для создания графики на python3.Я определил в Qt5 designer окно с графическим представлением.В python3 (используя PyCharm) я создаю прямоугольники через сцену
scene = QtWidgets.QGraphicsScene()
self.gvCanvas.setScene(scene)
, которая работает хорошо.Теперь я хочу напечатать мой grapghicsview gvCanvas.Я подключаю кнопку. Нажал на print_widget.Это определяется следующим образом:
def print_widget(self):
# Create printer
printer = QtPrintSupport.QPrinter() #QtPrintSupport.QPrinter.HighResolution)
printer.setPageSize(QtPrintSupport.QPrinter.A4)
# Create painter
painter = QtGui.QPainter()
# Start painter
painter.begin(printer)
# Grab a widget you want to print
screen = self.gvCanvas.grab() #editor.grab()
# Draw grabbed pixmap
painter.drawPixmap(10, 10, screen)
# End painting.
painter.end()
При печати непосредственно на моем принтере Epson все в порядке. Я также определил PDF-принтер на своей Ubuntu 18.04.(Чашки-PDF).Это прекрасно работает для всех моих программ (например, LibreOffice).Но печать / печать, которая не работает на Epson-принтере, не работает на Pdf-принтере.Я получаю полностью чистый лист.Я обнаружил, что на каком-то форуме это делается с помощью scene.render oder graphicsview.render.Но я не понимаю или не могу перенести его на python3 (кажется, в C ++)
Итак, вопрос: как должен выглядеть мой print_widget правильно?