在 PyQt5 中,要創建自定義信號并在 QPushButton 上使用它們,需要先導入相關庫,然后創建一個新的信號并將其與按鈕的點擊事件(clicked)連接
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtCore import pyqtSignal
class CustomPushButton(QPushButton):
custom_signal = pyqtSignal()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.clicked.connect(self.emit_custom_signal)
def emit_custom_signal(self):
self.custom_signal.emit()
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
vbox = QVBoxLayout()
button = CustomPushButton("Click me")
button.custom_signal.connect(self.on_custom_signal)
vbox.addWidget(button)
self.setLayout(vbox)
def on_custom_signal(self):
print("Custom signal emitted!")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
在這個示例中,我們首先從 QPushButton 類創建了一個名為 CustomPushButton 的子類。我們定義了一個名為 custom_signal 的自定義信號,并在按鈕被點擊時觸發它。
然后,在 MainWindow 類中,我們創建了一個 CustomPushButton 實例,并將其自定義信號連接到 on_custom_signal 方法。當按鈕被點擊時,這個方法會被調用,輸出 “Custom signal emitted!”。