我正在研究gui空間非常緊密的觸摸屏應用程序。我想旋轉一個QLabel,使它垂直,或者在一個對角線上偏移一點。有什麼建議麼?我在QLabel界面找不到任何相關的東西。PyQT:旋轉QLabel,使其對角線而不是水平定位
非常感謝!
我正在研究gui空間非常緊密的觸摸屏應用程序。我想旋轉一個QLabel,使它垂直,或者在一個對角線上偏移一點。有什麼建議麼?我在QLabel界面找不到任何相關的東西。PyQT:旋轉QLabel,使其對角線而不是水平定位
非常感謝!
QLabel
不這樣做。但是你可以很容易地創建一個包含一些文本的您自己的小工具:
class MyLabel(QtGui.QWidget):
def paintEvent(self, event):
painter = QtGui.QPainter(self)
painter.setPen(QtCore.Qt.black)
painter.translate(20, 100)
painter.rotate(-90)
painter.drawText(0, 0, "hellos")
painter.end()
另一種方法是畫一個QGraphicsView
,那麼你有自由繪製真正的小部件(即一個QLabel
)通過任何座標變換。
我用這個帖子來製作另一個我認爲可能更好的解決方案。這裏是:
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())
嗨,謝謝。你會知道如何用QPushButton做到這一點嗎?見線程:http://stackoverflow.com/questions/7339685/how-to-rotate-a-qpushbutton謝謝。 – Benjamin 2011-09-07 21:24:50