繁体   English   中英

我可以创建不是类的字段成员的新样式pyqt信号吗?

[英]Can I create a new style pyqt signal that isn't a field member of a class?

因此,对于我看到的使用PyQt4创建样式信号的唯一方法如下:

class MyCustomClass(QtCore.QThread):
    custom_signal = QtCore.pyqtSignal(str)

我的牛肉是,如果我在其他任何地方声明该信号,则pyqt会向我抛出一个错误,说明custom_signal如何没有connect()函数。

当我想做一些简单的事情时,我想创建一个辅助函数来帮助删除样板代码/重复的代码:启动一个新线程,在该线程中进行工作,将结果作为信号发送给对象。 但是,当我需要在类中定义信号时,这很困难。

有什么办法让信号只是局部变量吗?

不知道我是否正确理解了您的问题,但是从您的评论看来,定义一个适用于任何类型的信号就足够了吗? 如果是这种情况,可以使用object作为类型:

class MyCustomClass(QtCore.QThread):
    custom_signal = QtCore.pyqtSignal(object)

简单测试:

>>> def callback(result):
...    print type(result)
...
>>> obj = MyCustomClass()
>>> obj.custom_signal.connect(callback)
>>> obj.custom_signal.emit('hello')
<type 'str'>
>>> obj.custom_signal.emit({'x': 1})
<type 'dict'>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM