要捕获来自不同小部件的信号,可以使用信号和槽机制。
以下是一个使用PyQt5库的代码示例,演示如何捕获来自两个按钮的点击信号:
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from PyQt5.QtCore import QObject, pyqtSignal
class WidgetSignals(QObject):
button1_clicked = pyqtSignal()
button2_clicked = pyqtSignal()
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.signals = WidgetSignals()
self.button1 = QPushButton("Button 1", self)
self.button1.clicked.connect(self.signals.button1_clicked.emit)
self.button2 = QPushButton("Button 2", self)
self.button2.clicked.connect(self.signals.button2_clicked.emit)
self.signals.button1_clicked.connect(self.on_button1_clicked)
self.signals.button2_clicked.connect(self.on_button2_clicked)
def on_button1_clicked(self):
print("Button 1 clicked")
def on_button2_clicked(self):
print("Button 2 clicked")
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
在上述代码中,我们首先定义了一个名为WidgetSignals
的自定义信号类,其中包含了两个信号button1_clicked
和button2_clicked
。然后,在MainWindow
类中,我们创建了两个按钮,并将它们的点击信号连接到对应的自定义信号的发射函数。
接着,我们定义了on_button1_clicked
和on_button2_clicked
两个槽函数,用于处理按钮点击信号的捕获。这两个槽函数会在按钮被点击时被调用,可以在其中执行相应的操作,比如打印一条消息。
最后,我们创建了一个QApplication
实例和一个MainWindow
实例,并调用exec_()
方法进入主循环,以启动应用程序。
你可以根据自己的需求修改和扩展上述代码,来适应不同小部件的信号捕获。