模块间的PyQt信号

0 投票
1 回答
1219 浏览
提问于 2025-04-18 09:06

我有点搞不懂一个可能很简单的事情。怎么从一个模块(Main.py)去修改另一个模块(module2.py),这个模块是作为QDockWidget连接到主窗口的,然后能立刻看到这些变化呢?

1 个回答

3

你需要在类里面声明一个信号,然后把这个信号连接到一个函数上。

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

撰写回答