【发布时间】:2018-11-01 20:01:25
【问题描述】:
我有一个具有默认关键字参数的函数。我在实现这一点时遇到了麻烦,因为我不断收到一个错误,如果我的信号有两个参数,那么我需要传递两个参数。有没有办法解决这个问题?
class Controller(QWidget):
trigger = pyqtSignal(str, str)
def __init__(self):
self.trigger.connect(self.myfunc)
@pyqtSlot(str, str)
def function(argument, optional_argument=''):
do something
c = Controller()
c.trigger.emit('Hello', 'World') # This works
c.trigger.emit('Hello') # This fails and says I need 2 arguments
【问题讨论】:
-
遗憾的是,我不相信这是可能的,尽管 C++ 中的 Qt 本身就支持这一点。
-
@AlexanderHuszagh 是的,在 python 中是可能的,在 C++ 中,MOC 完成了创建具有 2 个签名的 2 个信号的肮脏工作,但在 python 中,必须清楚地指出两个签名。 :-)
标签: python pyqt pyqt5 qt-signals qt-slot