PyQt——信號與槽函數快速進階

內置信號與槽函數

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

內置信號和自定義槽函數

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

自定義信號和內置槽函數


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

自定義信號和自定義槽函數


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_())
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章