Пример #1
0
    def paintEvent(self, event):
        """Reimplemented to paint the background panel."""
        painter = QStylePainter(self)
        option = QStyleOptionFrame()
        option.initFrom(self)
        painter.drawPrimitive(QStyle.PE_PanelTipLabel, option)
        painter.end()

        super(ToolTipWidget, self).paintEvent(event)
Пример #2
0
    def paintEvent(self, event):
        """Reimplemented to paint the background panel."""
        painter = QStylePainter(self)
        option = QStyleOptionFrame()
        option.initFrom(self)
        painter.drawPrimitive(QStyle.PE_PanelTipLabel, option)
        painter.end()

        super(ToolTipWidget, self).paintEvent(event)
Пример #3
0
 def drawBorder(self, painter):
     """
     Draw the border of the plot canvas
     
     :param QPainter painter: Painter
     
     .. seealso::
     
         :py:meth:`setBorderRadius()`
     """
     if self.__data.borderRadius > 0:
         if self.frameWidth() > 0:
             QwtPainter.drawRoundedFrame(
                 painter,
                 QRectF(self.frameRect()),
                 self.__data.borderRadius,
                 self.__data.borderRadius,
                 self.palette(),
                 self.frameWidth(),
                 self.frameStyle(),
             )
     else:
         if PYQT5:
             from qtpy.QtWidgets import QStyleOptionFrame
         else:
             try:
                 from PyQt4.QtGui import QStyleOptionFrameV3 as QStyleOptionFrame
             except ImportError:
                 from PySide2.QtWidgets import QStyleOptionFrame
         opt = QStyleOptionFrame()
         opt.initFrom(self)
         frameShape = self.frameStyle() & QFrame.Shape_Mask
         frameShadow = self.frameStyle() & QFrame.Shadow_Mask
         opt.frameShape = QFrame.Shape(int(opt.frameShape) | frameShape)
         if frameShape in (
             QFrame.Box,
             QFrame.HLine,
             QFrame.VLine,
             QFrame.StyledPanel,
             QFrame.Panel,
         ):
             opt.lineWidth = self.lineWidth()
             opt.midLineWidth = self.midLineWidth()
         else:
             opt.lineWidth = self.frameWidth()
         if frameShadow == self.Sunken:
             opt.state |= QStyle.State_Sunken
         elif frameShadow == self.Raised:
             opt.state |= QStyle.State_Raised
         self.style().drawControl(QStyle.CE_ShapedFrame, opt, painter, self)
Пример #4
0
 def drawCanvas(self, painter, withBackground):
     hackStyledBackground = False
     if (
         withBackground
         and self.testAttribute(Qt.WA_StyledBackground)
         and self.testPaintAttribute(self.HackStyledBackground)
     ):
         #  Antialiasing rounded borders is done by
         #  inserting pixels with colors between the
         #  border color and the color on the canvas,
         #  When the border is painted before the plot items
         #  these colors are interpolated for the canvas
         #  and the plot items need to be clipped excluding
         #  the anialiased pixels. In situations, where
         #  the plot items fill the area at the rounded
         #  borders this is noticeable.
         #  The only way to avoid these annoying "artefacts"
         #  is to paint the border on top of the plot items.
         if (
             self.__data.styleSheet.hasBorder
             and not self.__data.styleSheet.borderPath.isEmpty()
         ):
             #  We have a border with at least one rounded corner
             hackStyledBackground = True
     if withBackground:
         painter.save()
         if self.testAttribute(Qt.WA_StyledBackground):
             if hackStyledBackground:
                 #  paint background without border
                 painter.setPen(Qt.NoPen)
                 painter.setBrush(self.__data.styleSheet.background.brush)
                 painter.setBrushOrigin(self.__data.styleSheet.background.origin)
                 painter.setClipPath(self.__data.styleSheet.borderPath)
                 painter.drawRect(self.contentsRect())
             else:
                 qwtDrawStyledBackground(self, painter)
         elif self.autoFillBackground():
             painter.setPen(Qt.NoPen)
             painter.setBrush(self.palette().brush(self.backgroundRole()))
             if self.__data.borderRadius > 0.0 and self.rect() == self.frameRect():
                 if self.frameWidth() > 0:
                     painter.setClipPath(self.borderPath(self.rect()))
                     painter.drawRect(self.rect())
                 else:
                     painter.setRenderHint(QPainter.Antialiasing, True)
                     painter.drawPath(self.borderPath(self.rect()))
             else:
                 painter.drawRect(self.rect())
         painter.restore()
     painter.save()
     if not self.__data.styleSheet.borderPath.isEmpty():
         painter.setClipPath(self.__data.styleSheet.borderPath, Qt.IntersectClip)
     else:
         if self.__data.borderRadius > 0.0:
             painter.setClipPath(self.borderPath(self.frameRect()), Qt.IntersectClip)
         else:
             #                print('**DEBUG: QwtPlotCanvas.drawCanvas')
             painter.setClipRect(self.contentsRect(), Qt.IntersectClip)
     self.plot().drawCanvas(painter)
     painter.restore()
     if withBackground and hackStyledBackground:
         #  Now paint the border on top
         opt = QStyleOptionFrame()
         opt.initFrom(self)
         self.style().drawPrimitive(QStyle.PE_Frame, opt, painter, self)