デザイナーを使用してLinuxでアプリをセットアップしようとしPyQt4ていますが、信号とスロットをアプリに接続するのに苦労しています。今、私がやりたいのは、ボタンclicked信号をカスタムスロットに接続することだけです。saveEnergySchemeこれは、単に「エネルギーリスト」を端末に出力します。
アプリの.uiコードを。を使用してPythonクラスに変換しましたpyuic4 -w sumcorr.ui > sumcorr_ui.py。sumcorr_ui.pyこれにより、モジュール内に次のクラスが作成されましたSumCorr_ui。
class SumCorr_ui(QtGui.QMainWindow, Ui_SumCorr_ui):
def __init__(self, parent=None, f=QtCore.Qt.WindowFlags()):
QtGui.QMainWindow.__init__(self, parent, f)
self.setupUi(self)
次に、アプリをカスタムウィジェットとして作成し、ボタンに単純なシグナルスロット接続を追加して、機能することを示しました。
from PyQt4 import QtGui, QtCore
from sumcorr_ui import SumCorr_ui
class SumCorr(SumCorr_ui):
def __init__(self):
SumCorr_ui.__init__(self)
self.save_energies_button.clicked.connect(self.saveEnergyScheme)
def saveEnergyScheme(self):
print 'energyList'
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
mySumCorr = QtGui.QMainWindow()
ui = SumCorr()
ui.setupUi(mySumCorr)
mySumCorr.show()
sys.exit(app.exec_())
、という名前のボタンをクリックすると、「エネルギーリスト」という行が表示されると思いますsave_energies_buttonが、何も起こりません。これは、UIをウィジェットとしてではなく、メインウィンドウとして作成したためでしょうか。なぜ印刷されないのですか?