模块之间的PyQt信号

时间:2014-06-09 08:19:05

标签: python pyqt4

我无法理解一个人可能是一件非常简单的事情。一个模块(Main.py)如何在其他模块(module2.py)中进行更改(调用函数),该模块作为QDockWidget连接到MainWindow,并立即看到这些更改?

1 个答案:

答案 0 :(得分:1)

你必须在类中声明一个信号,然后将信号连接到一个函数。

class MyClass(QtCore.QObject): # Could be QWidget must be inherited from QObject
    mysignal = QtCore.pyqtSignal(int, int, int, int) # types to pass values to the method call
    ...


myclass = MyClass()
other = QtGui.QMainWindow()

myclass.mysignal.connect(other.setGeometry)
myclass.mysignal.emit(0, 0, 1, 1)

http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html