デザイナーを使用して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をウィジェットとしてではなく、メインウィンドウとして作成したためでしょうか。なぜ印刷されないのですか?