我有一个基于QObject的python类,如下所示:
from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal
class Validator(QObject):
authFailed = pyqtSignal(str, arguments=['value'])
def __init__(self, parent=None):
super(Validator, self).__init__(parent)
@pyqtslot
def test(self):
self.authFailed.emit("Failed")
在qml方面,我可以听到这个信号:
Validator {
onAuthFailed: {
}
id: validator
}
但是,我不确定如何捕获也从信号(str
消息)发出的Failed
参数。当我尝试类似:onAuthFailed(msg)
签名时,这无法编译。
答案 0 :(得分:3)
我不知道PyQt ......
通常,在QML中,您只需使用其名称即可访问信号参数。
根据这个: http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html#PyQt5.QtCore.pyqtSignal
您在arguments=['value']
- 列表中传递的字符串是用于将参数公开给QML的名称。
所以我很确定,你可以在QML的处理程序中使用变量value
。
尝试:
onAuthFailed: console.log('auth Failed: ', value)