Pyqt/Qt信号与槽的理解(二)

内置信号和槽函数

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)
        btn.clicked.connect(self.close) 

if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = Winform()
    win.show()
    sys.exit(app.exec_())

运行效果:

这里写图片描述

单击按钮时触发内置信号(clicked) ,绑定窗口QWidget 内置的槽函数(self.close)

内置信号和自定义槽函数

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)       
        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_())

演示效果:

这里写图片描述

单击按钮时触发内置信号(clicked) ,绑定自定义的槽函数(self.btn_close)

自定义信号和内置的槽函数

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)
        # 接收信号,连接到槽
        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_())

演示效果:

这里写图片描述

单击按钮时触发内置信号(button_clicked_signal) ,绑定自定义的槽函数(self.close)

自定义信号和自定义槽函数

rom 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)
        # 接收信号,连接到自定义槽函数
        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_())

演示效果:


这里写图片描述

扫描二维码关注公众号,回复: 1068006 查看本文章

单击按钮时触发内置信号(button_clicked_signal) ,绑定自定义的槽函数(self.btn_closePython)

猜你喜欢

转载自blog.csdn.net/zhangziju/article/details/80255017