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

PySideでUIを作っていると、UIに飾りとして画像を表示したい時ございませんか!?例えば、こんな感じです。

PySideでUIに画像をぶち込む方法をご紹介したいと思います(`・ω・´)ゞ

成功方法

まずは、一般的な方法です。PySideで画像を表示するには「QLabel」の「setPixmap」を使って登録することできます。

字以外も表示できるんですね!(゚∀゚)

from PySide import QtGui
image = QtGui.QLabel()
image.setPixmap(QtGui.QPxmap('画像のパス'))
Mayaにある画像を使いたい場合は、「Mayaにある画像をPySideで使う!」をあわせて御覧ください(`・ω・´)ゞ

カスタマイズクラス

ただ、、、画像を表示したいだけなのに、ダイレクトにいけないってのはちょっと面倒くさい場合もあると思います。

そこで!簡単ではありますが、QLabelを継承して画像をすっと表示できるクラスになります。

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

このクラスを使うと、以下のような感じでちょっぴり短く書くことができます!

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