PyQt多个QDilaog类信号捕获

时间:2013-03-21 00:33:38

标签: python signals pyqt4 qdialog

我有一个PyQt Gui应用程序,它有多个QDialog窗口,我用它来使用matplotlib小部件绘制数据。这是我正在使用的代码。

仅捕获一个发出的信号。最后一次创建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' 

1 个答案:

答案 0 :(得分: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__