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()







Maya x Pythonの技術書
たっきゅんのガチンコツール開発部 Maya Python 101
(CG Pro Insights)

もっとMayaを便利に使いませんか!?実用性のあるツールを例にPythonが学べるように、がんばって執筆させていただきました!是非、この機会によろしくお願いいたします!

2 件のコメント

  • Pysideでセレクターを作る場合、画像の上にボタンを配置しますが
    上記のやり方で、できますでしょうか?
    また、矩形選択とかも、Pysideなら可能なのでしょうか?

    • 画像ビューワーのような使い方を想定されている場合は、QGraphicsviewの方が良いかと思います。
      この記事の画像の表示の仕方は、飾りの1つとして表示したい場合になりますので、
      移動させたり、選択させたりということは、想定しておりません。。。(´-﹏-`;)

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です