在Pyqt5中控件是通过信号与相应槽函数连接来进行相应动作的响应,本文主要介绍内置信号、自定义信号与内置槽函数、自定义槽函数之间的使用方法。
1.内置信号与内置槽函数使用
# -*- coding: utf-8 -*- from PyQt5.QtWidgets import * import sys class Winform(QWidget): def __init__(self,parent=None): super().__init__(parent) self.setWindowTitle('内置的信号/槽示例') self.resize(330, 50 ) btn = QPushButton('关闭', self) # 内置信号clicked绑定到内置槽函数close btn.clicked.connect(self.close) if __name__ == '__main__': app = QApplication(sys.argv) win = Winform() win.show() sys.exit(app.exec_())
2.内置信号与自定义槽函数使用
# -*- coding: utf-8 -*- from PyQt5.QtWidgets import * import sys class Winform(QWidget): def __init__(self,parent=None): super().__init__(parent) self.setWindowTitle('内置的信号和自定义槽函数示例') self.resize(330, 50 ) btn = QPushButton('关闭', self) # 内置信号clicked绑定到自定义槽函数btn_close btn.clicked.connect(self.btn_close) def btn_close(self): # 自定义槽函数 self.close() if __name__ == '__main__': app = QApplication(sys.argv) win = Winform() win.show() sys.exit(app.exec_())
3.自定义信号与内置槽函数使用
# -*- coding: utf-8 -*- from PyQt5.QtWidgets import * from PyQt5.QtCore import pyqtSignal import sys class Winform(QWidget): # 自定义信号,不带参数 button_clicked_signal = pyqtSignal() def __init__(self,parent=None): super().__init__(parent) self.setWindowTitle('自定义信号和内置槽函数示例') self.resize(330, 50 ) btn = QPushButton('关闭', self) # 连接 信号和槽 btn.clicked.connect(self.btn_clicked) # 将自定义信号button_clicked_signal,连接到内置槽函数close self.button_clicked_signal.connect(self.close) def btn_clicked(self): # 发送自定义信号,无参数 self.button_clicked_signal.emit() if __name__ == '__main__': app = QApplication(sys.argv) win = Winform() win.show() sys.exit(app.exec_())
4.自定义信号与自定义槽函数使用
# -*- coding: utf-8 -*- from PyQt5.QtWidgets import * from PyQt5.QtCore import pyqtSignal import sys class Winform(QWidget): # 自定义信号,不带参数 button_clicked_signal = pyqtSignal() def __init__(self,parent=None): super().__init__(parent) self.setWindowTitle('自定义信号和槽函数示例') self.resize(330, 50 ) btn = QPushButton('关闭', self) # 连接 信号和槽 btn.clicked.connect(self.btn_clicked) # 将自定义信号button_clicked_signal,连接到自定义槽函数btn_close self.button_clicked_signal.connect(self.btn_close) def btn_clicked(self): # 发送自定义信号,无参数 self.button_clicked_signal.emit() def btn_close(self): self.close() if __name__ == '__main__': app = QApplication(sys.argv) win = Winform() win.show() sys.exit(app.exec_())