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框架。简单说,它就是把一个事件(信号)和你要执行的函数(槽)连起来。

核心用法就三步:

  1. 定义一个处理函数(槽)。
  2. 获取发出信号的对象。
  3. 对象.信号.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)

回到顶部