[Python][PySide] Qt Designer を使った画面の作成と表示

環境

  • Windows7 Home 64bit
  • Python 3.3.3
  • PySide 1.2.1

Qt Designer での画面作成

PySide をインストールすると、一緒に Qt Designer も入っています。 場所はちょっとわかりづらいですがPython のインストール場所\Lib\site-packages\PySide内にdesigner.exeがあります。 英語ですが、特に問題なく使用できます。

ui ファイルからの画面表示

作成した ui ファイルから画面を表示するには、ui ファイルを直接読み込む方法と、一度 py ファイルに変換する方法があります。

ui ファイルを直接読み込む場合

import os
import sys
from PySide import QtGui, QtUiTools

if __name__ == "__main__":
	app = QtGui.QApplication(sys.argv)
	# Ui Loader
	loader = QtUiTools.QUiLoader()
	# Ui ファイルを読み込んでオブジェクトを取得
	ui = loader.load(os.path.dirname(os.path.abspath(sys.argv[0])) + "/Ui.ui")
	# 表示
	ui.show()
	# 各ウィジェットなどは、デザイナーで設定した名前でアクセスできる
	ui.exit_action.triggered.connect(app.quit)

	sys.exit(app.exec_())

Ui.uiという ui ファイルを読み込んで表示しています。

py ファイルに変換する場合

まず変換ですが、pyside-uic.exeを使って変換します。このファイルはPython のインストール場所\Scriptsあたりにあると思います。 変換するには変換する ui ファイルと出力先を指定するだけです。

C:\Python33\Scripts\pyside-uic.exe Ui.ui > Ui_.py

ファイル名がちょっと整理上の都合で変な感じになってますが、今回はUi.uiファイルを変換してUi_.pyファイルに出力しています。 そして、変換した py ファイルは通常のクラスになっているので、インポートして使用します。

import sys
from PySide import QtGui
from Ui_ import *
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
	'''
	変換した ui ファイルは、Python のクラスが作成されているので継承して使用するのが良いかと
	'''
	def __init__(self, parent=None):
		super(MainWindow, self).__init__(parent)
		# setupUi というメソッドが定義されているので実行する
		# これで設置したウィジェットなどがインスタンス化される
		self.setupUi(self)
		# 継承したので self.名前 でアクセスできる
		self.exit_action.triggered.connect(app.quit)

if __name__ == "__main__":
	app = QtGui.QApplication(sys.argv)
	window = MainWindow()
	window.show()
	sys.exit(app.exec_())

クラス名は一番上の親のオブジェクト名の前にUi_がついたものになるようです。

Qt Designer を使って作成した画面を表示した例

リソースファイルを使用する場合

リソースファイルを使う場合もあると思います。ただ、直接読み込むことは出来ないようなので、py ファイルに変換する必要があります。 変換するにはpyside-rcc.exeを使用します。このファイルはPython のインストール場所\Lib\site-packages\PySide\にあると思います。 変換するには変換する qrc ファイルと出力先、あと Python のバージョンを指定するだけです。

C:\Python33\Lib\site-packages\PySide\pyside-rcc.exe -py3 Resource.qrc > Resource_rc.py

今回はResource.qrcファイルを変換してResource_rc.pyファイルに出力しています。 ui と組み合わせている場合 ui を変換した py ファイルからは、リソースファイル名_rcという名前で import されるようなので、 _rcを付加したファイル名で保存しています。あとは import すれば使えます。

リソースファイルを使って画像を表示した例

Qt Designer を使うと簡単に画面を作成することができるので、とりあえず画面イメージを掴みたいときなんかは便利だと思います。

参考

Trackbacks & Pingbacks

  • None

Comments

  • No Comment
Name
Mail(任意) 公開されません
Web Site(任意)
Comment

日本語が含まれない投稿は無視されますのでご注意ください