最近一个项目采用Python加PyQt开发界面,本来代码只要翻译Qt的就好,但是在信号和槽机制上除了点问题,在 Qt中只要声明这 signals:的信号就能直接发射,但是在python中可不能声明signals:这样的函数,只好上网去翻,有一篇文章写的确实不错,不过是E文的,看的忒费劲的说,原文见下:
最近一个项目采用Python加PyQt开发界面,本来代码只要翻译Qt的就好,但是在信号和槽机制上除了点问题,在 Qt中只要声明这signals:的信号就能直接发射,但是在python中可不能声明signals:这样的函数,只好上网去翻,有一篇文章写的确实不错,不过是E文的,看的忒费劲的说,原文见下:
貌似pyqt的信号不需要声明,只要在需要发射信号的地方调用emit函数就可以了
1 self.emit(QtCore.SIGNAL("signal_test(PyQt_PyObject)"),'success')
就是必须在信号函数中带上一个参数:PyQt_PyObject,而且,发射自定义函数至少要有一个参数,并却最多也就一个参数,我实验两个或不带参数,失败了,
,带多个参数,程序能运行,但回报运行中错误,如果没有参数会包内存错误,那位大侠可以解释一下,
所以emit函数的第二个参数就是必须自带的参数,即使不需要也要带上一个参数,郁闷