मैं एक बटन के साथ एक पृष्ठभूमि छवि को घुमाने और खिड़की पर छवि को ट्रिम करने की कोशिश कर रहा हूं, लेकिन यह काम नहीं करता है और मुझे नहीं पता कि यह क्यों काम नहीं कर रहा है।

This is what I expect to get

लेकिन जब मैं बटन दबाता हूं तो मेरी छवि फीकी पड़ जाती है ...

और यहाँ मेरा कोड है:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QGridLayout, QPushButton
from PyQt5.QtGui import QPixmap

class myApplication(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(myApplication, self).__init__(parent)

        self.img = QtGui.QImage()
        pixmap = QtGui.QPixmap("ola.png")
    

        self.label = QLabel(self)
        self.label.setMinimumSize(600, 600)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setPixmap(pixmap)

        grid = QGridLayout()

        button = QPushButton('Rotate 15 degrees')
        button.clicked.connect(self.rotate_pixmap)

        grid.addWidget(self.label, 0, 0)
        grid.addWidget(button, 1, 0)

        self.setLayout(grid)

        self.rotation = 0

    def rotate_pixmap(self):

        pixmap = QtGui.QPixmap(self.img)
        self.rotation += 15

        transform = QtGui.QTransform().rotate(self.rotation)
        pixmap = pixmap.transformed(transform, QtCore.Qt.SmoothTransformation)

        self.label.setPixmap(pixmap)

if __name__ == '__main__':

    app = QApplication([])

    w = myApplication()  
    w.show()    

    sys.exit(app.exec_())
0
felipeM 10 सितंबर 2020, 08:27

1 उत्तर

सबसे बढ़िया उत्तर

"self.img" एक खाली QImage है और आप उस तत्व को घुमा रहे हैं। QPixmap को घुमाने का विचार है:

class myApplication(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(myApplication, self).__init__(parent)

        self.rotation = 0

        self.pixmap = QtGui.QPixmap("ola.png")

        self.label = QLabel()
        self.label.setMinimumSize(600, 600)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setPixmap(self.pixmap)

        button = QPushButton("Rotate 15 degrees")
        button.clicked.connect(self.rotate_pixmap)

        grid = QGridLayout(self)
        grid.addWidget(self.label, 0, 0)
        grid.addWidget(button, 1, 0)

    def rotate_pixmap(self):
        pixmap = self.pixmap.copy()
        self.rotation += 15
        transform = QtGui.QTransform().rotate(self.rotation)
        pixmap = pixmap.transformed(transform, QtCore.Qt.SmoothTransformation)
        self.label.setPixmap(pixmap)
1
eyllanesc 10 सितंबर 2020, 08:45