打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PyQt信号与槽之信号与槽的再细分(二)

前言

前面介绍了信号与槽有三种使用方法,这三种方法是根使用进行分类的,这里介绍根据信号与槽各自的性质进行分类,便于理解以及对信号与槽有更深刻的理解

内置信号与槽函数

演示单击时关闭窗口,使用内置的信号与槽函数

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

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

运行程序,效果图如下


在上面的代码中,单击按钮时触发内置的信号clicked,绑定窗口内置的槽函数

内置信号与自定义槽函数

演示单击按钮时关闭窗口,使用内置信号与自定义槽函数

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

效果如上图一样,只是标题变了一下,懒的截图,就直接用上图的了,有兴趣可以自己运行下


在上面的代码中,单击按钮时触发按钮内置的信号,绑定自定义的槽函数

自定义信号与内置槽函数

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

自定义信号和槽函数

# -*- 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)
        # 接收信号,连接到自定义槽函数
        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_())
  • 前言
          • 内置信号与槽函数
        • 内置信号与自定义槽函数
        • 自定义信号与内置槽函数
        • 自定义信号和槽函数
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PyQt5通信机制 信号与槽详解
信号与槽函数的自动绑定(三)
PyQt5快速入门(二)PyQt5信号槽机制
python 实现简易动漫图片转换器!
[Python 技术培训] 第二周讲稿
Python
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服