【发布时间】:2022-01-21 04:17:24
【问题描述】:
在 Pyqt5 中,我想旋转一个像素图,但每次我尝试它都会改变大小。 我的代码是:
import math
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLabel
from PyQt5.QtCore import QObject, QPointF, Qt, QRectF,QRect
from PyQt5.QtGui import QPixmap, QTransform, QPainter
class Window(QWidget):
def __init__(self, *args, **kwargs):
super(Window, self).__init__()
self.arch1 = QPixmap("arch1.png")
pm = QPixmap(556,556)
rectF = QRectF(0,0,556,556)
painter = QPainter(pm)
painter.drawPixmap(rectF, self.arch1, rectF)
painter.end()
self.label = QLabel("AAAAAAAAAA")
self.label.setPixmap(pm)
butA = QPushButton("A")
butA.clicked.connect(lambda: self.rotate_item())
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(butA)
self.setLayout(layout)
self.show()
def rotate_item(self):
rectF = QRectF(0,0,556,556)
self.arch1 = self.arch1.transformed(QTransform().rotate(36))
pix = QPixmap(556,556)
painter = QPainter(pix)
painter.drawPixmap(rectF, self.arch1,QRectF(self.arch1.rect()))
painter.end()
self.label.setPixmap(pix)
def main():
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
if __name__=="__main__":
main()
我只想旋转而不是调整大小。你建议我怎么做? 我有四个其他文件,我想以不同的方式旋转。我发布了一些照片以了解我想要做什么。
还有其他方法吗?
圈一个
圈二
完整的圆圈
【问题讨论】:
-
请在编辑帖子时更加小心,因为您最近的修改使其完全无法阅读,所以我不得不将其回滚。在提交之前还要检查帖子的预览,并阅读更多关于formatting code的信息。