gpt4 book ai didi

python - 将小部件旋转一定角度

转载 作者:行者123 更新时间:2023-12-01 00:33:11 25 4
gpt4 key购买 nike

我是 pyqt 的新手,需要旋转标签的帮助。我很困惑,无法理解如何以特定角度旋转整个小部件。不是小部件的内容,而是小部件本身。我正在寻找解决方案,但找不到任何东西。

最佳答案

QWidget不支持旋转,但解决方法是将窗口部件插入到QGraphicsProxyWidget中并将其添加到QGraphicsScene中,然后旋转QGraphicsProxyWidget,在视觉上生成相同的窗口部件旋转效果。

from PyQt5 import QtCore, QtGui, QtWidgets


def main():
import sys

app = QtWidgets.QApplication(sys.argv)

label = QtWidgets.QLabel("Stack Overflow", alignment=QtCore.Qt.AlignCenter)

graphicsview = QtWidgets.QGraphicsView()
scene = QtWidgets.QGraphicsScene(graphicsview)
graphicsview.setScene(scene)

proxy = QtWidgets.QGraphicsProxyWidget()
proxy.setWidget(label)
proxy.setTransformOriginPoint(proxy.boundingRect().center())
scene.addItem(proxy)

slider = QtWidgets.QSlider(minimum=0, maximum=359, orientation=QtCore.Qt.Horizontal)
slider.valueChanged.connect(proxy.setRotation)

label_text = QtWidgets.QLabel(
"{}°".format(slider.value()), alignment=QtCore.Qt.AlignCenter
)
slider.valueChanged.connect(
lambda value: label_text.setText("{}°".format(slider.value()))
)

slider.setValue(45)

w = QtWidgets.QWidget()
lay = QtWidgets.QVBoxLayout(w)
lay.addWidget(graphicsview)
lay.addWidget(slider)
lay.addWidget(label_text)
w.resize(640, 480)
w.show()
sys.exit(app.exec_())


if __name__ == "__main__":
main()

enter image description here

关于python - 将小部件旋转一定角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58020983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com