PyQT: Rotate a QLabel so that it's positioned diagonally instead of horizontally

前端 未结 4 2121
滥情空心
滥情空心 2021-01-07 06:17

I\'m working on a touch screen app where gui space is very tight. I\'d like to rotate a QLabel a bit so that it\'s either vertical, or offset at a diagonal a bit. Any sugg

4条回答
  •  温柔的废话
    2021-01-07 06:48

    Try this

    class myStyle(QCommonStyle):
    
        def __init__(self, angl=0, point=QPoint(0, 0)):
            super(myStyle, self).__init__()
            self.angl = angl
            self.point = point
    
        def drawItemText(self, painter, rect, flags, pal, enabled, text, textRole):
            if not text:
                return
            savedPen = painter.pen()
            if textRole != QPalette.NoRole:
                painter.setPen(QPen(pal.brush(textRole), savedPen.widthF()))
            if not enabled:
                pen = painter.pen()
                painter.setPen(pen)
            painter.translate(self.point)
            painter.rotate(self.angl)
            painter.drawText(rect, flags, text)
            painter.setPen(savedPen)
    

    and

    label = QLabel()
    label.setStyle(myStyle(-45, QPoint(0, 100)))
    

提交回复
热议问题