Python中signals.connect()函数的用法请教
在看爬虫代码时见到这个语句:
crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
请问哪里可以找到对 signals.connect() 这个函数的详细用法说明?最好是中文的,谢谢!
Python中signals.connect()函数的用法请教
3 回复
在Python里,signals.connect()通常指的是信号与槽的连接机制,最常见于PyQt/PySide这类GUI框架。简单说,它就是把一个事件(信号)和你要执行的函数(槽)连起来。
核心用法就三步:
- 定义一个处理函数(槽)。
- 获取发出信号的对象。
- 用
对象.信号.connect(处理函数)把它们连上。
举个例子,在PyQt6里给按钮的点击事件连个槽:
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.button = QPushButton("点我", self)
self.button.clicked.connect(self.on_button_clicked) # 关键连接
self.setCentralWidget(self.button)
def on_button_clicked(self):
print("按钮被点了!")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
这里 self.button.clicked 是信号,self.on_button_clicked 是槽,connect() 一调,点击按钮就会触发打印。Django的信号系统用法也类似,都是 信号.connect(接收函数) 这个模式。
总结:用 connect() 把事件和对应的处理函数挂钩就行。
help(crawler.signals.connect)


