PyQt では、デザイナーで作成されたフォームを操作する 3 つの方法があります。
- 単一継承を使用し、フォームをメンバー変数にします
- 多重継承を使用する
- UI ファイルから直接メンバーを動的に生成する
単一継承:
class MyTableWidget(QTableWidget):
def __init__(self, parent, *args):
super(MyTableWidget, self).__init__(parent, args)
self.ui = YourFormName()
self.ui.setupUi(self)
# all gui elements are now accessed through self.ui
def mousePressEvent(self, event):
pass # do something useful
多重継承:
class MyTableWidget(QTableWidget, YourFormName):
def __init__(self, parent, *args):
super(MyTableWidget, self).__init__(parent, args)
self.setupUi(self)
# self now has all members you defined in the form
def mousePressEvent(self, event):
pass # do something useful
動的に生成:
from PyQt4 import uic
yourFormTypeInstance = uic.loadUi('/path/to/your/file.ui')
上記の (3) の場合、フォームに指定したベース タイプのインスタンスが作成されます。その後、必要に応じてオーバーライドできますmousePressEvent
。
PyQt4 リファレンス マニュアルのセクション 13.1をご覧になることをお勧めします。セクション 13.2 でモジュールについて説明しています。uic