前言
前面介紹了信號(hào)與槽有三種使用方法,這三種方法是根使用進(jìn)行分類(lèi)的,這里介紹根據(jù)信號(hào)與槽各自的性質(zhì)進(jìn)行分類(lèi),便于理解以及對(duì)信號(hào)與槽有更深刻的理解
內(nèi)置信號(hào)與槽函數(shù)
演示單擊時(shí)關(guān)閉窗口,使用內(nèi)置的信號(hào)與槽函數(shù)
# -*- coding: utf-8 -*-
"""
【簡(jiǎn)介】
內(nèi)置的信號(hào)/槽示例
"""
from PyQt5.QtWidgets import *
import sys
class Winform(QWidget):
def __init__(self,parent=None):
super().__init__(parent)
self.setWindowTitle('內(nèi)置的信號(hào)/槽示例')
self.resize(330, 50 )
btn = QPushButton('關(guān)閉', self)
btn.clicked.connect(self.close)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Winform()
win.show()
sys.exit(app.exec_())
運(yùn)行程序,效果圖如下 在上面的代碼中,單擊按鈕時(shí)觸發(fā)內(nèi)置的信號(hào)clicked,綁定窗口內(nèi)置的槽函數(shù)
內(nèi)置信號(hào)與自定義槽函數(shù)
演示單擊按鈕時(shí)關(guān)閉窗口,使用內(nèi)置信號(hào)與自定義槽函數(shù)
# -*- coding: utf-8 -*-
"""
【簡(jiǎn)介】
內(nèi)置的信號(hào),自定義槽函數(shù)示例
"""
from PyQt5.QtWidgets import *
import sys
class Winform(QWidget):
def __init__(self,parent=None):
super().__init__(parent)
self.setWindowTitle('內(nèi)置的信號(hào)和自定義槽函數(shù)示例')
self.resize(330, 50 )
btn = QPushButton('關(guān)閉', self)
btn.clicked.connect(self.btn_close)
def btn_close(self):
# 自定義槽函數(shù)
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Winform()
win.show()
sys.exit(app.exec_())
效果如上圖一樣,只是標(biāo)題變了一下,懶的截圖,就直接用上圖的了,有興趣可以自己運(yùn)行下 在上面的代碼中,單擊按鈕時(shí)觸發(fā)按鈕內(nèi)置的信號(hào),綁定自定義的槽函數(shù)
自定義信號(hào)與內(nèi)置槽函數(shù)
# -*- coding: utf-8 -*-
"""
【簡(jiǎn)介】
自定義信號(hào)和內(nèi)置槽函數(shù) 示例
"""
from PyQt5.QtWidgets import *
from PyQt5.QtCore import pyqtSignal
import sys
class Winform(QWidget):
# 自定義信號(hào),不帶參數(shù)
button_clicked_signal = pyqtSignal()
def __init__(self,parent=None):
super().__init__(parent)
self.setWindowTitle('自定義信號(hào)和內(nèi)置槽函數(shù)示例')
self.resize(330, 50 )
btn = QPushButton('關(guān)閉', self)
# 連接 信號(hào)和槽
btn.clicked.connect(self.btn_clicked)
# 接收信號(hào),連接到槽
self.button_clicked_signal.connect(self.close)
def btn_clicked(self):
# 發(fā)送自定義信號(hào),無(wú)參數(shù)
self.button_clicked_signal.emit()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Winform()
win.show()
sys.exit(app.exec_())
自定義信號(hào)和槽函數(shù)
# -*- coding: utf-8 -*-
"""
【簡(jiǎn)介】
自定義信號(hào)和槽函數(shù) 示例
"""
from PyQt5.QtWidgets import *
from PyQt5.QtCore import pyqtSignal
import sys
class Winform(QWidget):
# 自定義信號(hào),不帶參數(shù)
button_clicked_signal = pyqtSignal()
def __init__(self,parent=None):
super().__init__(parent)
self.setWindowTitle('自定義信號(hào)和槽函數(shù)示例')
self.resize(330, 50 )
btn = QPushButton('關(guān)閉', self)
# 連接 信號(hào)和槽
btn.clicked.connect(self.btn_clicked)
# 接收信號(hào),連接到自定義槽函數(shù)
self.button_clicked_signal.connect(self.btn_close)
def btn_clicked(self):
# 發(fā)送自定義信號(hào),無(wú)參數(shù)
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_())
|