为了将python函数暴露给javascript代码,我需要使用pyqtlot()装饰器。
返回类型是list,所以我应该这样写:
@pyqtSlot(=结果列表)
但是我得到一个错误:
"TypeError:无法将Python 'list'对象转换为c++ 'PyQt_PyObject'实例"
我做了一些调查,但还没有找到答案。
根据pyqt文档,我可以返回任何python类型对象或指定c++类型的字符串,所以我尝试了result='array'。
但是它不工作或者我做错了什么。
@pyqtSlot(result=list)
def getCodeList(self):
return self.codeList
我想我有办法了。
我只是用QVariant()包装python列表并返回QVariant。
@pyqtSlot(result=QVariant)
def getCodeList(self):
return QVariant(self.codeList)
谢谢QVariant。