今回は、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_())