如何引用作为字符串传递的信号(新式信号/槽)?

2024-10-17 08:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在重构一些使用旧样式信号和插槽的代码,它所做的一件事就是将内置信号作为字符串(例如,signalName=“clicked()”)传递给实际连接信号和插槽的另一个函数。E、 g:

self.connect(widget, QtCore.SIGNAL(signalName), slot)

这很好。问题是,转换为新的信号和插槽(信号不是作为参数传递)会使这一问题更加复杂。在新的信号和插槽中,上述内容将是类似的:

^{pr2}$

其中^{cd1>}是有效的。:)我有很多事情要做,不用^{{cd2>}就可以工作:

^{pr3}$

基于a related post

^{pr4}$

当然还有eval,它实际上起作用:

fullCommand="widget." + signalName + ".connect(slot)"
eval(fullCommand)

但是它使用^{cd2>,这有点皱眉。有没有更好的方法将这种代码转换成新的样式信号和插槽,而不使用^{{cd2>}?

注意,我试图将原始代码转换为新样式的信号和插槽,如下所示: https://github.com/ghosert/VimProject/blob/master/pyqt/book_samples/chap06/imagechanger.pyw

这是萨默菲尔德关于Qt编程的书的第6章。

相关问题:

Passing Arguments with Newstyle signals in PyQT


Tags: 字符串代码信号connecteval样式widget内置