从零开始学Pyqt5之【信号与槽函数定义与使用方法:包含自定义信号与自定义槽函数】
原创
©著作权归作者所有:来自51CTO博客作者阿旭算法与机器学习的原创作品,请联系作者获取转载授权,否则将追究法律责任
从零开始学Pyqt5之【信号与槽函数定义与使用方法:包含自定义信号与自定义槽函数】
- 1.内置信号与内置槽函数使用
- 2.内置信号与自定义槽函数使用
- 3.自定义信号与内置槽函数使用
- 4.自定义信号与自定义槽函数使用
在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_())