7 Module implementing a canvas view class. |
7 Module implementing a canvas view class. |
8 """ |
8 """ |
9 |
9 |
10 import sys |
10 import sys |
11 |
11 |
12 from PyQt5.QtCore import pyqtSignal, QRectF, QSize, QSizeF, Qt |
12 from PyQt6.QtCore import pyqtSignal, QRectF, QSize, QSizeF, Qt |
13 from PyQt5.QtGui import QBrush, QPainter, QPixmap, QFont, QColor |
13 from PyQt6.QtGui import QBrush, QPainter, QPixmap, QFont, QColor |
14 from PyQt5.QtWidgets import QGraphicsView |
14 from PyQt6.QtWidgets import QGraphicsView |
15 |
15 |
16 from E5Gui.E5Application import e5App |
16 from E5Gui.E5Application import e5App |
17 |
17 |
18 import Preferences |
18 import Preferences |
19 |
19 |
47 |
47 |
48 self.__initialSceneSize = self.scene().sceneRect().size() |
48 self.__initialSceneSize = self.scene().sceneRect().size() |
49 self.setBackgroundBrush(QBrush(self.getBackgroundColor())) |
49 self.setBackgroundBrush(QBrush(self.getBackgroundColor())) |
50 self.setRenderHint(QPainter.RenderHint.Antialiasing, True) |
50 self.setRenderHint(QPainter.RenderHint.Antialiasing, True) |
51 self.setDragMode(QGraphicsView.DragMode.RubberBandDrag) |
51 self.setDragMode(QGraphicsView.DragMode.RubberBandDrag) |
52 self.setAlignment(Qt.Alignment( |
52 self.setAlignment( |
53 Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)) |
53 Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop) |
54 self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn) |
54 self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn) |
55 self.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn) |
55 self.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn) |
56 self.setViewportUpdateMode( |
56 self.setViewportUpdateMode( |
57 QGraphicsView.ViewportUpdateMode.SmartViewportUpdate) |
57 QGraphicsView.ViewportUpdateMode.SmartViewportUpdate) |
58 |
58 |
302 # step 2: grab the diagram |
302 # step 2: grab the diagram |
303 if imageFormat == "PNG": |
303 if imageFormat == "PNG": |
304 paintDevice = QPixmap(int(rect.width()), int(rect.height())) |
304 paintDevice = QPixmap(int(rect.width()), int(rect.height())) |
305 paintDevice.fill(self.backgroundBrush().color()) |
305 paintDevice.fill(self.backgroundBrush().color()) |
306 else: |
306 else: |
307 from PyQt5.QtSvg import QSvgGenerator |
307 from PyQt6.QtSvg import QSvgGenerator |
308 paintDevice = QSvgGenerator() |
308 paintDevice = QSvgGenerator() |
309 paintDevice.setResolution(100) # 100 dpi |
309 paintDevice.setResolution(100) # 100 dpi |
310 paintDevice.setSize(QSize(int(rect.width()), int(rect.height()))) |
310 paintDevice.setSize(QSize(int(rect.width()), int(rect.height()))) |
311 paintDevice.setViewBox(rect) |
311 paintDevice.setViewBox(rect) |
312 paintDevice.setFileName(filename) |
312 paintDevice.setFileName(filename) |
345 (QPrinter) |
345 (QPrinter) |
346 @param diagramName name of the diagram (string) |
346 @param diagramName name of the diagram (string) |
347 """ |
347 """ |
348 painter = QPainter(printer) |
348 painter = QPainter(printer) |
349 |
349 |
350 font = QFont("times", 10) |
350 font = QFont(["times"], 10) |
351 painter.setFont(font) |
351 painter.setFont(font) |
352 fm = painter.fontMetrics() |
352 fm = painter.fontMetrics() |
353 fontHeight = fm.lineSpacing() |
353 fontHeight = fm.lineSpacing() |
354 marginX = ( |
354 marginX = ( |
355 printer.pageLayout().paintRectPixels(printer.resolution()).x() - |
355 printer.pageLayout().paintRectPixels(printer.resolution()).x() - |