非pyqt 类对象如何发送pyqtSignal
时间: 2024-05-31 14:06:05 浏览: 78
PyQt学习随笔:自定义信号连接时报AttributeError: ‘PyQt5.QtCore.pyqtSignal’ object has no attribute ‘connect’
5星 · 资源好评率100%
非pyqt类对象可以通过继承QObject类,并定义pyqtSignal类型的信号,来实现发送pyqtSignal信号。具体实现步骤如下:
1. 首先导入QtCore模块中的QObject和pyqtSignal
2. 定义一个类并继承QObject类,以便使用pyqtSignal信号。
3. 在类中定义一个pyqtSignal类型的信号,可以在构造函数中定义,也可以在类中定义。
4. 在需要发送信号的地方,调用pyqtSignal信号并传递参数即可。
以下是一个示例代码,其中自定义的非pyqt类MyClass继承了QObject类,并定义了一个名为my_signal的pyqtSignal信号:
```python
from PyQt5.QtCore import QObject, pyqtSignal
class MyClass(QObject):
my_signal = pyqtSignal(str)
def __init__(self):
super().__init__()
def do_something(self):
# 发送my_signal信号,并传递字符串参数
self.my_signal.emit("Hello, PyQt!")
```
当需要发送信号时,只需调用my_signal信号即可,如下所示:
```python
obj = MyClass()
obj.my_signal.connect(lambda text: print(text))
obj.do_something() # 输出 "Hello, PyQt!"
```
阅读全文