在 PyQt5 中,要触发 QPushButton 的自定义事件,您需要先创建一个信号(signal),然后将其连接到槽函数(slot function)。以下是一个简单的示例:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout from PyQt5.QtCore import pyqtSignal class CustomPushButton(QPushButton): custom_signal = pyqtSignal() def __init__(self, parent=None): super().__init__(parent) self.clicked.connect(self.on_click) def on_click(self): self.custom_signal.emit() class MainWindow(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Custom QPushButton') layout = QVBoxLayout() button = CustomPushButton("Click me") button.custom_signal.connect(self.on_custom_signal) layout.addWidget(button) self.setLayout(layout) def on_custom_signal(self): print("Custom signal triggered!") if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_())
在这个示例中,我们创建了一个名为 CustomPushButton
的自定义按钮类,它继承自 QPushButton
。我们在这个类中定义了一个名为 custom_signal
的信号,并在按钮被点击时触发它。
然后,在 MainWindow
类中,我们创建了一个 CustomPushButton
实例,并将其 custom_signal
连接到 on_custom_signal
槽函数。当按钮被点击时,on_custom_signal
函数将被调用,输出 “Custom signal triggered!”。