0

matplotlib ウィジェットを使用してデータをプロットするために使用する複数の QDialog ウィンドウを持つ PyQt Gui アプリケーションがあります。これは私が使用しているコードです。

発せられたシグナルは 1 つだけキャッチされます。QDialog が最後に作成されたものは、発行されたシグナルをキャッチします。TempBoxダイアログが最後に作成された場合NewTemp_signalは がキャッチされ、RealBoxダイアログが最後に作成された場合NewReal_signalは がキャッチされます。しかし、他の信号はキャッチされません。両方のシグナルをキャッチしてすべてのダイアログを更新するにはどうすればよいですか? ありがとう

ダイアログ ウィンドウ クラス

class GUIgraph(QtGui.QDialog):
    def __init__(self,parent=None):
       QtGui.QDialog.__init__(self,parent)
       print 'This is the Histograph dialog class function'
       self.graph = Ui_histogram_Dialog()
       self.graph.setupUi(self)

新たな窓を生み出す機能

def TempgraphFunc(self):
    QtGui.QWidget.__init__(self,parent=None)
    self.TempBox = GUIgraph()
    self.TempBox.setWindowTitle("Temperature")
    self.NewTemp_signal.connect(self.TempPlotFunc)
    self.TempBox.show()

def RealgraphFunc(self):
    QtGui.QWidget.__init__(self,parent=None)
    self.RealBox = GUIgraph()
    self.RealBox.setWindowTitle("Real Space")
    self.NewReal_signal.connect(self.RealPlotFunc)
    print 'Real is connected'
    self.RealBox.show()

別の関数で私は信号を発します

def loadFiles(self):
    ....
    self.NewTemp_signal.emit()
    self.NewReal_signal.emit()
    print ' signals emitted' 
4

1 に答える 1

0

建築上の問題があると思います。私はあなたのコードをすべて見るわけではありませんが、少なくともこれは非常に奇妙です:

def TempgraphFunc(self):
    QtGui.QWidget.__init__(self,parent=None)
    self.TempBox = GUIgraph()
    self.TempBox.setWindowTitle("Temperature")
    self.NewTemp_signal.connect(self.TempPlotFunc)
    self.TempBox.show()

あなたが呼び出しているメソッドでQtGui.QWidget.__init__??? __init__親の「コンストラクター」メソッドであり、オーバーライドされたサブクラスから呼び出すことになっています__init__

于 2013-03-22T08:32:25.787 に答える