如何旋转棋盘

2024-05-14 18:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将我的图像旋转x

如果可能的话,我不想使用QPixMap或PaintEvent。你知道吗

我已经在寻找可能的解决办法,但没有奏效。你知道吗

现在我正试图用QTransform方法来解决这个问题:

class MainWindow(QMainWindow):

    def rotate_pdf_ui(self):
        for index, object in enumerate(self.page_objects):
            if object.push_button.isChecked():
                object.rotate(90)
        self.delete_old_position()
        self.position_push_buttons_in_grid()

    def position_push_buttons_in_grid(self):
        row = 0
        column = 0
        for page_object in self.page_objects:
            self.ui.pushButtonGrid.addWidget(page_object.push_button, row, column)
            column += 1
            if int(len(self.page_objects) / 4) is column:
                row += 1
                column = 0
        self.ui.widgetLayout.setLayout(self.ui.pushButtonGrid)

    def delete_old_position(self):
        for push_button in reversed(range(self.ui.pushButtonGrid.count())):
            button_to_remove = self.ui.pushButtonGrid.itemAt(push_button).widget()
            self.ui.pushButtonGrid.removeWidget(button_to_remove)
            button_to_remove.setParent(None)
        return self.ui.pushButtonGrid

class PageObject:

    def rotate(self, rotation):
        my_transform = QTransform()
        my_transform.rotate(rotation)
        self.img.transformed(my_transform)
        self.rotation += rotation

我没有收到任何错误信息图像只是没有旋转。你知道吗


Tags: inselfuiforobjectsobjectdefpage
1条回答
网友
1楼 · 发布于 2024-05-14 18:19:18

我发现了错误!谢谢你,福拉斯: self.img = self.img.transformed(my_transform)是解决方案的前半部分! 在PySide2和PyQt5中,您必须再次创建QPushButton以显示新图像,否则它只是更改了,但从未显示。你知道吗

def rotate_pdf_ui(self):
    for index, object in enumerate(self.page_objects):
        if object.push_button.isChecked():
            object.rotate(90)
            object.rotation += 90
    self.delete_old_position()
    self.position_push_buttons_in_grid()

def rotate(self, rotation):
    my_transform = QTransform()
    my_transform.rotate(rotation)
    self.img = self.img.transformed(my_transform)
    self.rotation += rotation
    self.push_button = self.createPushButton()

相关问题 更多 >

    热门问题