PySideでアニメーションGIFを表示する方法!!

takkun
どうも!たっくんです

以前、画像をWidgetとして表示する方法をご紹介しましたが、今回はアニメーションGIFを表示する方法をご紹介したいと思います!コレを使えば、ローディング画面とか結構さっくっと作れちゃいそうです!(*´ω`*)b

何より、ビジュアルの良いものをフォトショやAEで作れていいですよね!(゚∀゚)

PySideのUIに画像を表示する方法!!

2017.08.16

クラスの骨格

画像の時と同様に、「QLabel」を継承して作成したいと思います!インスタンス作成で、画像ファイルのパスを指定できるようにしておきます。

from PySide import QtCore, QtGui
class Image(QtGui.QLabel):
	def __init__(self, filename=None, parent=None):
		super(Image, self).__init__(parent)

画像をWidgetに設定する

受け取ったファイルパスを元に「QMovie」のインスタンスを作成します!その後、QLabelの「setMovie」を使って設定してあげれOKです!QMovieの「start」を実行しないと再生されないのでご注意を!

from PySide import QtCore, QtGui
class Image(QtGui.QLabel):
	def __init__(self, filename=None, parent=None):
		super(Image, self).__init__(parent)
		self.setImage(filename)
	 
	def setImage(self, filename):
		movie = QtGui.QMovie(filename)
		self.setMovie(movie)
		movie.start()

テスト!

以下の実行コードを使って、早速試してみたいと思います!(`・ω・´)ゞ

from PySide import QtCore, QtGui
		
window = QtGui.QWidget()
window.setWindowFlags(QtCore.Qt.Window)
layout = QtGui.QHBoxLayout(window)
layout.addWidget(Image(r'D:\ajax-loader.gif'))
window.show()

実行すると、きっちりアニメーションGIFが再生されます(*´ω`*)b

ローディング画面制作サイト

今回、デザインと、色だけ選べば簡単にローディングのアニメーションGIFを作成できるサイトを利用しました!

www.ajaxload.info
 
Ajaxload - Ajax loading gif generator
Ajaxload - Ajax loading gif generator