PySide + QUiLoaderを使ったテスト その2
UIファイルをロードしてSignalとSlotを設定してみます。
基本は前回と同じ。UIファイルは前回と同じものを使っています。
ボタンを押すと標準出力にpushed!と表示されます。
test02.py
from PySide import QtCore, QtGui from PySide.QtUiTools import QUiLoader class MyQUiLoader(QUiLoader): def __init__(self, baseinstance): QUiLoader.__init__(self) self.baseinstance = baseinstance def createWidget(self, className, parent=None, name=""): widget = QUiLoader.createWidget(self, className, parent, name) if parent is None: return widget else: setattr(parent, name, widget) return widget def loadUi(uifile, baseinstance=None): loader = MyQUiLoader(baseinstance) ui = loader.load(uifile) QtCore.QMetaObject.connectSlotsByName(ui) return ui class TestDialog(object): def __init__(self): self.ui = loadUi('test.ui') self.ui.formLayoutWidget.pushButton.clicked.connect(self.onPushButton) self.ui.show() def onPushButton(self): print 'pushed!' def loadUi(uifile, baseinstance=None): loader = MyQUiLoader(baseinstance) ui = loader.load(uifile) QtCore.QMetaObject.connectSlotsByName(ui) return ui if __name__ == '__main__': import sys app = None if QtGui.QApplication.instance() is None: app = QtGui.QApplication(sys.argv) else: app = QtGui.QApplication.instance() w = TestDialog() app.exec_()