【发布时间】:2013-05-15 01:15:17
【问题描述】:
Pyside documentation 声明槽可以有返回值,但我还没有弄清楚它是如何做到的。
我找不到任何可用的代码示例,所以我按照文档的建议添加了一个装饰器:
def testSlot(self):
print('testSlot called')
return 'RETURN VALUE RETURN VALUE RETURN VALUE'
我正在尝试像这样捕获返回值:
ret = foo.testSignal.emit()
但它不起作用。我的测试代码,你可以找到here,也可以找到crashes 和this 错误输出。感谢您的帮助!
编辑:我已经删除了装饰器,这解决了崩溃问题,但它仍然没有返回我希望它返回的值。
按原样运行脚本给我这个:
foo.testSignal.emit()
调用 testSlot
真的
【问题讨论】:
-
装饰器中有两个
@s -
哎呀,不知道它是怎么进来的。我修复了它,但它仍然崩溃。
-
它是如何崩溃的?什么是完整的回溯?
-
它给了我一个"python.exe has stopped working" message box。问题详情的全文是here。控制台上没有输出。另外,pastie 似乎是添加了额外的
@的那个,由于某种原因,它在每次重新粘贴后都会再次添加它。 -
我遇到了类似的问题。一些有时对我有用的尝试:
@Slot()没有参数。如果失败,请完全移除装饰器。
标签: python pyside signals-slots