在 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!”。