Esempio n. 1
0
    def drawInstructions(self, painter):
        text = "Click and drag with the left mouse button to rotate the Qt " "logo."
        metrics = QFontMetrics(self.font())
        border = max(4, metrics.leading())

        rect = metrics.boundingRect(
            0,
            0,
            self.width() - 2 * border,
            int(self.height() * 0.125),
            Qt.AlignCenter | Qt.TextWordWrap,
            text,
        )
        painter.setRenderHint(QPainter.TextAntialiasing)
        painter.fillRect(
            QRect(0, 0, self.width(), rect.height() + 2 * border), QColor(0, 0, 0, 127)
        )
        painter.setPen(Qt.white)
        painter.fillRect(
            QRect(0, 0, self.width(), rect.height() + 2 * border), QColor(0, 0, 0, 127)
        )
        painter.drawText(
            (self.width() - rect.width()) / 2,
            border,
            rect.width(),
            rect.height(),
            Qt.AlignCenter | Qt.TextWordWrap,
            text,
        )
Esempio n. 2
0
    def paintText(self, text, color, fontSize, refX, refY, painter):
        '''
        Paint text on top of the image and OpenGL drawings
        :param text: chars to write
        :param color: text color
        :param fontSize: text size in mm
        :param refX: position in reference units (mm of the real instrument). This is relative to the measurement unit position, NOT in pixels.
        :param refY: position in reference units (mm of the real instrument). This is relative to the measurement unit position, NOT in pixels.
        '''
        prevPen = painter.pen()
        pPositionX = self.refToScreenX(refX) - (fontSize*self.scalingFactor*0.072)
        pPositionY = self.refToScreenY(refY) - (fontSize*self.scalingFactor*0.212)

        font = QFont('Bitstream Vera Sans')
        # Enforce minimum font size of 5 pixels
        fSize = max(5, int(fontSize*self.scalingFactor*1.26))
        font.setPixelSize(fSize)

        metrics = QFontMetrics(font)
        border = max(4, metrics.leading())
        rect = metrics.boundingRect(0, 0, self.width() - 2*border, int(self.height()*0.125),
                                    Qt.AlignLeft | Qt.TextWordWrap, text)
        painter.setPen(color)
        painter.setFont(font)
        painter.setRenderHint(QPainter.TextAntialiasing)
        painter.drawText(pPositionX, pPositionY,
                         rect.width(), rect.height(),
                         Qt.AlignCenter | Qt.TextWordWrap, text)
        painter.setPen(prevPen)
Esempio n. 3
0
    def drawInstructions(self, painter):
        text = 'Press F1 for controls'
        metrics = QFontMetrics(QFont("Times", 12, QFont.Bold))
        border = max(4, metrics.leading())

        rect = metrics.boundingRect(0, 0, self.width() - 2*border,
                int(self.height()*0.125), Qt.AlignCenter,
                text)
        painter.setRenderHint(QPainter.TextAntialiasing)
        painter.fillRect(QRect(0, 0, self.width(), rect.height() + 2*border), QColor(0, 0, 0, 127))
        painter.setPen(Qt.white)
        painter.fillRect(QRect(0, 0, self.width(), rect.height() + 2*border), QColor(0, 0, 0, 127))
        painter.drawText((self.width() - rect.width())/2, border, rect.width(),
                rect.height(), Qt.AlignCenter | Qt.TextWordWrap, text)
Esempio n. 4
0
    def drawInstructions(self, painter):
        text = "Click and drag with the left mouse button to rotate the Qt " \
               "logo."
        metrics = QFontMetrics(self.font())
        border = max(4, metrics.leading())

        rect = metrics.boundingRect(0, 0, self.width() - 2 * border,
                                    int(self.height() * 0.125), Qt.AlignCenter | Qt.TextWordWrap,
                                    text)
        painter.setRenderHint(QPainter.TextAntialiasing)
        painter.fillRect(QRect(0, 0, self.width(), rect.height() + 2 * border), QColor(0, 0, 0, 127))
        painter.setPen(Qt.white)
        painter.fillRect(QRect(0, 0, self.width(), rect.height() + 2 * border), QColor(0, 0, 0, 127))
        painter.drawText((self.width() - rect.width()) / 2, border, rect.width(),
                         rect.height(), Qt.AlignCenter | Qt.TextWordWrap, text)