[PyQt]uiファイルの使用について

今回は、PythonでQtデザイナーのuiファイルを直接使用する方法を紹介します。

参考サイト
PyQt4でuiファイルを直接使う
PyQtでGUI:.uiファイルのload

PythonでQtのuiファイルを使うとすると方法は2つあります。
1.pyuic4を使い、.pyに変換して使う
2.PyQt4.uic.loadUi()で直接使用する

元々.uiを変更するごとに、.pyで変換するというめんどくさいことをしていました。
編集する場合があるときは、uiから直接読む方が楽ちんです。
1つめの参考サイトでは、メタクラスを使ってuiファイルに更新があった場合、.pyを更新して、使用するようになっています。

ここでは、直接読む方法だけを説明します。
とはいうものの関数を使い、uiファイルからclassをもらうだけです。

以下サンプル

# -*- coding: utf-8 -*-
from PyQt4 import QtGui, uic
import sys

class uiDialog(QtGui.QDialog):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        ui_class = uic.loadUiType(u'ui.ui', self)[0]
        # uiファイルのクラスを取得
        self.ui = ui_class()
        self.ui.setupUi(self)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    # dialog = uic.loadUi(u'ui.ui')
    # いちおう、この形でもいけます。
    # カスタマイズする時や継承関係的にはおすすめできない。
    dialog = uiDialog()
    dialog.show()
    sys.exit(app.exec_())

コメントを残す

メールアドレスが公開されることはありません。