eric6/Graphics/PixmapDiagram.py

changeset 8143
2c730d5fd177
parent 7923
91e843545d9a
child 8218
7c09585bd960
equal deleted inserted replaced
8141:27f636beebad 8143:2c730d5fd177
51 self.setObjectName("PixmapDiagram") 51 self.setObjectName("PixmapDiagram")
52 self.setWindowTitle(self.tr("Pixmap-Viewer")) 52 self.setWindowTitle(self.tr("Pixmap-Viewer"))
53 53
54 self.pixmapLabel = QLabel() 54 self.pixmapLabel = QLabel()
55 self.pixmapLabel.setObjectName("pixmapLabel") 55 self.pixmapLabel.setObjectName("pixmapLabel")
56 self.pixmapLabel.setBackgroundRole(QPalette.Base) 56 self.pixmapLabel.setBackgroundRole(QPalette.ColorRole.Base)
57 self.pixmapLabel.setSizePolicy( 57 self.pixmapLabel.setSizePolicy(
58 QSizePolicy.Ignored, QSizePolicy.Ignored) 58 QSizePolicy.Policy.Ignored, QSizePolicy.Policy.Ignored)
59 self.pixmapLabel.setScaledContents(True) 59 self.pixmapLabel.setScaledContents(True)
60 60
61 self.pixmapView = QScrollArea() 61 self.pixmapView = QScrollArea()
62 self.pixmapView.setObjectName("pixmapView") 62 self.pixmapView.setObjectName("pixmapView")
63 self.pixmapView.setBackgroundRole(QPalette.Dark) 63 self.pixmapView.setBackgroundRole(QPalette.ColorRole.Dark)
64 self.pixmapView.setWidget(self.pixmapLabel) 64 self.pixmapView.setWidget(self.pixmapLabel)
65 65
66 self.setCentralWidget(self.pixmapView) 66 self.setCentralWidget(self.pixmapView)
67 67
68 self.__zoomWidget = E5ZoomWidget( 68 self.__zoomWidget = E5ZoomWidget(
82 82
83 self.__initActions() 83 self.__initActions()
84 self.__initContextMenu() 84 self.__initContextMenu()
85 self.__initToolBars() 85 self.__initToolBars()
86 86
87 self.grabGesture(Qt.PinchGesture) 87 self.grabGesture(Qt.GestureType.PinchGesture)
88 88
89 def __initActions(self): 89 def __initActions(self):
90 """ 90 """
91 Private method to initialize the view actions. 91 Private method to initialize the view actions.
92 """ 92 """
113 self.__menu.addAction(self.closeAct) 113 self.__menu.addAction(self.closeAct)
114 self.__menu.addSeparator() 114 self.__menu.addSeparator()
115 self.__menu.addAction(self.printPreviewAct) 115 self.__menu.addAction(self.printPreviewAct)
116 self.__menu.addAction(self.printAct) 116 self.__menu.addAction(self.printAct)
117 117
118 self.setContextMenuPolicy(Qt.CustomContextMenu) 118 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
119 self.customContextMenuRequested.connect(self.__showContextMenu) 119 self.customContextMenuRequested.connect(self.__showContextMenu)
120 120
121 def __showContextMenu(self, coord): 121 def __showContextMenu(self, coord):
122 """ 122 """
123 Private slot to show the context menu of the listview. 123 Private slot to show the context menu of the listview.
137 self.graphicsToolBar = QToolBar(self.tr("Graphics"), self) 137 self.graphicsToolBar = QToolBar(self.tr("Graphics"), self)
138 self.graphicsToolBar.setIconSize(UI.Config.ToolBarIconSize) 138 self.graphicsToolBar.setIconSize(UI.Config.ToolBarIconSize)
139 self.graphicsToolBar.addAction(self.printPreviewAct) 139 self.graphicsToolBar.addAction(self.printPreviewAct)
140 self.graphicsToolBar.addAction(self.printAct) 140 self.graphicsToolBar.addAction(self.printAct)
141 141
142 self.addToolBar(Qt.TopToolBarArea, self.windowToolBar) 142 self.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.windowToolBar)
143 self.addToolBar(Qt.TopToolBarArea, self.graphicsToolBar) 143 self.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.graphicsToolBar)
144 144
145 def __showPixmap(self, filename): 145 def __showPixmap(self, filename):
146 """ 146 """
147 Private method to show a file. 147 Private method to show a file.
148 148
183 """ 183 """
184 Protected method to handle wheel events. 184 Protected method to handle wheel events.
185 185
186 @param evt reference to the wheel event (QWheelEvent) 186 @param evt reference to the wheel event (QWheelEvent)
187 """ 187 """
188 if evt.modifiers() & Qt.ControlModifier: 188 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
189 delta = evt.angleDelta().y() 189 delta = evt.angleDelta().y()
190 if delta < 0: 190 if delta < 0:
191 self.__zoomOut() 191 self.__zoomOut()
192 elif delta > 0: 192 elif delta > 0:
193 self.__zoomIn() 193 self.__zoomIn()
201 Public method handling events. 201 Public method handling events.
202 202
203 @param evt reference to the event (QEvent) 203 @param evt reference to the event (QEvent)
204 @return flag indicating, if the event was handled (boolean) 204 @return flag indicating, if the event was handled (boolean)
205 """ 205 """
206 if evt.type() == QEvent.Gesture: 206 if evt.type() == QEvent.Type.Gesture:
207 self.gestureEvent(evt) 207 self.gestureEvent(evt)
208 return True 208 return True
209 209
210 return super(PixmapDiagram, self).event(evt) 210 return super(PixmapDiagram, self).event(evt)
211 211
213 """ 213 """
214 Protected method handling gesture events. 214 Protected method handling gesture events.
215 215
216 @param evt reference to the gesture event (QGestureEvent 216 @param evt reference to the gesture event (QGestureEvent
217 """ 217 """
218 pinch = evt.gesture(Qt.PinchGesture) 218 pinch = evt.gesture(Qt.GestureType.PinchGesture)
219 if pinch: 219 if pinch:
220 if pinch.state() == Qt.GestureStarted: 220 if pinch.state() == Qt.GestureState.GestureStarted:
221 pinch.setTotalScaleFactor(self.__zoom() / 100) 221 pinch.setTotalScaleFactor(self.__zoom() / 100)
222 elif pinch.state() == Qt.GestureUpdated: 222 elif pinch.state() == Qt.GestureState.GestureUpdated:
223 self.__doZoom(int(pinch.totalScaleFactor() * 100)) 223 self.__doZoom(int(pinch.totalScaleFactor() * 100))
224 evt.accept() 224 evt.accept()
225 225
226 ########################################################################### 226 ###########################################################################
227 ## Private menu handling methods below. 227 ## Private menu handling methods below.
304 304
305 def __printDiagram(self): 305 def __printDiagram(self):
306 """ 306 """
307 Private slot called to print the diagram. 307 Private slot called to print the diagram.
308 """ 308 """
309 printer = QPrinter(mode=QPrinter.ScreenResolution) 309 printer = QPrinter(mode=QPrinter.PrinterMode.ScreenResolution)
310 printer.setFullPage(True) 310 printer.setFullPage(True)
311 if Preferences.getPrinter("ColorMode"): 311 if Preferences.getPrinter("ColorMode"):
312 printer.setColorMode(QPrinter.Color) 312 printer.setColorMode(QPrinter.ColorMode.Color)
313 else: 313 else:
314 printer.setColorMode(QPrinter.GrayScale) 314 printer.setColorMode(QPrinter.ColorMode.GrayScale)
315 if Preferences.getPrinter("FirstPageFirst"): 315 if Preferences.getPrinter("FirstPageFirst"):
316 printer.setPageOrder(QPrinter.FirstPageFirst) 316 printer.setPageOrder(QPrinter.PageOrder.FirstPageFirst)
317 else: 317 else:
318 printer.setPageOrder(QPrinter.LastPageFirst) 318 printer.setPageOrder(QPrinter.PageOrder.LastPageFirst)
319 printer.setPrinterName(Preferences.getPrinter("PrinterName")) 319 printer.setPrinterName(Preferences.getPrinter("PrinterName"))
320 320
321 printDialog = QPrintDialog(printer, self) 321 printDialog = QPrintDialog(printer, self)
322 if printDialog.exec(): 322 if printDialog.exec():
323 self.__print(printer) 323 self.__print(printer)
326 """ 326 """
327 Private slot called to show a print preview of the diagram. 327 Private slot called to show a print preview of the diagram.
328 """ 328 """
329 from PyQt5.QtPrintSupport import QPrintPreviewDialog 329 from PyQt5.QtPrintSupport import QPrintPreviewDialog
330 330
331 printer = QPrinter(mode=QPrinter.ScreenResolution) 331 printer = QPrinter(mode=QPrinter.PrinterMode.ScreenResolution)
332 printer.setFullPage(True) 332 printer.setFullPage(True)
333 if Preferences.getPrinter("ColorMode"): 333 if Preferences.getPrinter("ColorMode"):
334 printer.setColorMode(QPrinter.Color) 334 printer.setColorMode(QPrinter.ColorMode.Color)
335 else: 335 else:
336 printer.setColorMode(QPrinter.GrayScale) 336 printer.setColorMode(QPrinter.ColorMode.GrayScale)
337 if Preferences.getPrinter("FirstPageFirst"): 337 if Preferences.getPrinter("FirstPageFirst"):
338 printer.setPageOrder(QPrinter.FirstPageFirst) 338 printer.setPageOrder(QPrinter.PageOrder.FirstPageFirst)
339 else: 339 else:
340 printer.setPageOrder(QPrinter.LastPageFirst) 340 printer.setPageOrder(QPrinter.PageOrder.LastPageFirst)
341 printer.setPageMargins( 341 printer.setPageMargins(
342 Preferences.getPrinter("LeftMargin") * 10, 342 Preferences.getPrinter("LeftMargin") * 10,
343 Preferences.getPrinter("TopMargin") * 10, 343 Preferences.getPrinter("TopMargin") * 10,
344 Preferences.getPrinter("RightMargin") * 10, 344 Preferences.getPrinter("RightMargin") * 10,
345 Preferences.getPrinter("BottomMargin") * 10, 345 Preferences.getPrinter("BottomMargin") * 10,
346 QPrinter.Millimeter 346 QPrinter.Unit.Millimeter
347 ) 347 )
348 printer.setPrinterName(Preferences.getPrinter("PrinterName")) 348 printer.setPrinterName(Preferences.getPrinter("PrinterName"))
349 349
350 preview = QPrintPreviewDialog(printer, self) 350 preview = QPrintPreviewDialog(printer, self)
351 preview.paintRequested[QPrinter].connect(self.__print) 351 preview.paintRequested[QPrinter].connect(self.__print)
394 painter.drawRect(marginX, marginY, width, height) 394 painter.drawRect(marginX, marginY, width, height)
395 painter.drawLine(marginX, marginY + height + 2, 395 painter.drawLine(marginX, marginY + height + 2,
396 marginX + width, marginY + height + 2) 396 marginX + width, marginY + height + 2)
397 painter.setFont(font) 397 painter.setFont(font)
398 painter.drawText(marginX, marginY + height + 4, width, 398 painter.drawText(marginX, marginY + height + 4, width,
399 fontHeight, Qt.AlignRight, s) 399 fontHeight, Qt.AlignmentFlag.AlignRight, s)
400 400
401 # render the diagram 401 # render the diagram
402 size = self.pixmapLabel.pixmap().size() 402 size = self.pixmapLabel.pixmap().size()
403 size.scale(QSize(width - 10, height - 10), # 5 px inner margin 403 size.scale(QSize(width - 10, height - 10), # 5 px inner margin
404 Qt.KeepAspectRatio) 404 Qt.AspectRatioMode.KeepAspectRatio)
405 painter.setViewport(marginX + 5, marginY + 5, 405 painter.setViewport(marginX + 5, marginY + 5,
406 size.width(), size.height()) 406 size.width(), size.height())
407 painter.setWindow(self.pixmapLabel.pixmap().rect()) 407 painter.setWindow(self.pixmapLabel.pixmap().rect())
408 painter.drawPixmap(0, 0, self.pixmapLabel.pixmap()) 408 painter.drawPixmap(0, 0, self.pixmapLabel.pixmap())
409 painter.end() 409 painter.end()

eric ide

mercurial