class ImagePlayer(QWidget):
    """ src: https://gist.github.com/Svenito/4000025 """
    def __init__(self, filename, parent=None):
        super().__init__(parent)

        # Load the file into a QMovie
        self.movie = QMovie(filename, QByteArray(), self)

        size = self.movie.scaledSize()
        self.setGeometry(200, 200, size.width(), size.height())

        self.movie_screen = QLabel()
        # Make label fit the gif
        self.movie_screen.setSizePolicy(QSizePolicy.Expanding,
                                        QSizePolicy.Expanding)
        self.movie_screen.setAlignment(Qt.AlignCenter)

        # Create the layout
        main_layout = QVBoxLayout()
        main_layout.addWidget(self.movie_screen)

        self.setLayout(main_layout)

        # Add the QMovie object to the label
        self.movie.setCacheMode(QMovie.CacheAll)
        self.movie.setSpeed(100)
        self.movie_screen.setMovie(self.movie)
        self.movie.loopCount = -1
        self.movie.start()
Exemple #2
0
class ImagePlayer(QWidget):
    def __init__(self, filename, title, parent=None):
        QWidget.__init__(self, parent)

        # Load the file into a QMovie
        self.movie = QMovie(filename, QByteArray(), self)

        size = self.movie.scaledSize()
        self.setGeometry(200, 200, size.width(), size.height())
        self.setWindowTitle(title)

        self.movie_screen = QLabel()
        # Make label fit the gif
        self.movie_screen.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.movie_screen.setAlignment(Qt.AlignCenter)

        # Create the layout
        main_layout = QVBoxLayout()
        main_layout.addWidget(self.movie_screen)

        self.setLayout(main_layout)

        # Add the QMovie object to the label
        self.movie.setCacheMode(QMovie.CacheAll)
        self.movie.setSpeed(100)
        self.movie_screen.setMovie(self.movie)
        self.movie.start()
class GifPlayer(QWidget):
    def __init__(self, title, gifFile):
        super().__init__(self)
        self.setWindowTitle(title)

        self.movie = QMovie(gifFile, QByteArray(), self)

        size = self.movie.scaledSize()
        self.setGeometry(200, 200, size.width(), size.height())

        self.movie_screen = QLabel()
        self.movie_screen.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.movie_screen.setAlignment(Qt.AlignCenter)

        main_layout = QVBoxLayout()
        main_layout.addWidget(self.movie_screen)
        self.setLayout(main_layout)

        self.movie.setCacheMode(QMovie.CacheAll)
        self.movie_screen.setMovie(self.movie)
        self.movie.start()
        self.movie.loopCount()

        button = QPushButton('refresh gif', self)
        button.setToolTip('This is an example button')
        button.move(10,10)
        button.clicked.connect(self.on_click)

    @pyqtSlot()
    def on_click(self):
        self.movie = QMovie(gifFile,QByteArray(), self)
        self.movie_screen.setMovie(self.movie)
        self.movie.start()
        print("done")
class GifPlayer2(QWidget):
    def __init__(self, title, gifFile):
        self.movie = QMovie(gifFile, QByteArray(), self)
        size = self.movie.scaledSize()
        self.setGeometry(200, 200, size.width(), size.height())
        self.movie.setCacheMode(QMovie.CacheAll)
        self.movie_screen.setMovie(self.movie)
        self.movie.start()
        self.movie.loopCount()
Exemple #5
0
 def getRandomGif(self):
     directories = os.listdir(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LOADING_GIF_FOLDER))
     numberPictures = len(directories)
     pictureIndex = random.randint(0, numberPictures - 1)
     gif = QMovie(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LOADING_GIF_FOLDER) + "/" +
         directories[pictureIndex])
     gifSize = gif.scaledSize()
     gifScaleFactor = self.windowSize.height() / gifSize.height()
     gif.setScaledSize(
         QSize(gifSize.width() * gifScaleFactor,
               gifSize.height() * gifScaleFactor))
     return gif
Exemple #6
0
class GifPlayer(QWidget):
    def __init__(self, name, parent=None):
        QWidget.__init__(self, parent)

        self.movie = QMovie(name, QByteArray(), self)
        size = self.movie.scaledSize()
        self.setGeometry(0, 0, size.width(), size.height())
        self.im = Image.open(name).size
        self.movie_screen = QLabel()
        self.movie_screen.setSizePolicy(QSizePolicy.Expanding,
                                        QSizePolicy.Expanding)
        self.movie_screen.setAlignment(Qt.AlignCenter)
        main_layout = QVBoxLayout()
        main_layout.addWidget(self.movie_screen)
        self.setLayout(main_layout)
        self.movie.setCacheMode(QMovie.CacheAll)
        self.movie_screen.setMovie(self.movie)
        self.movie.start()
        self.movie.loopCount()

        self.btn_s = QPushButton('Scale', self)
        self.btn_s.resize(80, 25)
        self.btn_s.move(0, 460)
        self.btn_s.clicked.connect(self.resizeGIF)
        self.btn_s.setStyleSheet("""
    QPushButton:hover { background-color: red; color: white }
    QPushButton:!hover { background-color: rgb(105, 105, 105); color: white }
    QPushButton:pressed { background-color: rgb(205, 92, 92); color: white }
""")

    # Этот метод меняет разрешение гиф-анимации в окне result
    def resizeGIF(self):
        try:
            rect = self.geometry()
            w = rect.width()
            h = rect.height()
            w1, h1 = self.im
            if w > 20 and h > 20:
                w -= 20
                h -= 20
            k = h1 / h
            w = w1 / k
            size = QtCore.QSize(int(w), h)

            movie = self.movie_screen.movie()
            movie.setScaledSize(size)
        except Exception as er:
            print(er)