どうも!たっくんです
以前、画像をWidgetとして表示する方法をご紹介しましたが、今回はアニメーションGIFを表示する方法をご紹介したいと思います!コレを使えば、ローディング画面とか結構さっくっと作れちゃいそうです!(*´ω`*)b
何より、ビジュアルの良いものをフォトショやAEで作れていいですよね!(゚∀゚)
クラスの骨格
画像の時と同様に、「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
1977 shares
1966 users
Ajaxload - Ajax loading gif generator
Ajaxload - Ajax loading gif generator