PyQt信號與槽之信號與槽的再細分(二)

PyQt信號與槽之信號與槽的再細分(二),第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)
        btn.clicked.connect(self.close) 

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

運行程序,傚果圖如下
PyQt信號與槽之信號與槽的再細分(二),這裡寫圖片描述,第2張
在上麪的代碼中,單擊按鈕時觸發內置的信號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_())

傚果如上圖一樣,衹是標題變了一下,嬾的截圖,就直接用上圖的了,有興趣可以自己運行下
PyQt信號與槽之信號與槽的再細分(二),這裡寫圖片描述,第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)
        # 接收信號,連接到槽
        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_())

生活常識_百科知識_各類知識大全»PyQt信號與槽之信號與槽的再細分(二)

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情