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

前端 未结 4 2120
滥情空心
滥情空心 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:38

    I used this post to make another solution that I think is maybe better. Here it is:

    class VerticalLabel(QLabel):
    
        def __init__(self, *args):
            QLabel.__init__(self, *args)
    
        def paintEvent(self, event):
            QLabel.paintEvent(self, event)
            painter = QPainter (self)
            painter.translate(0, self.height()-1)
            painter.rotate(-90)
            self.setGeometry(self.x(), self.y(), self.height(), self.width())
            QLabel.render(self, painter)
    
        def minimumSizeHint(self):
            size = QLabel.minimumSizeHint(self)
            return QSize(size.height(), size.width())
    
        def sizeHint(self):
            size = QLabel.sizeHint(self)
            return QSize(size.height(), size.width())
    

提交回复
热议问题