从零开始学Pyqt5之【信号与槽函数定义与使用方法:包含自定义信号与自定义槽函数】

简介: 从零开始学Pyqt5之【信号与槽函数定义与使用方法:包含自定义信号与自定义槽函数】

在Pyqt5中控件是通过信号与相应槽函数连接来进行相应动作的响应,本文主要介绍内置信号、自定义信号与内置槽函数、自定义槽函数之间的使用方法。


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)
    # 内置信号clicked绑定到内置槽函数close
    btn.clicked.connect(self.close) 
if __name__ == '__main__':
  app = QApplication(sys.argv)
  win = Winform()
  win.show()
  sys.exit(app.exec_())


2.内置信号与自定义槽函数使用


# -*- 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) 
    # 内置信号clicked绑定到自定义槽函数btn_close 
    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_())


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)
    # 将自定义信号button_clicked_signal,连接到内置槽函数close
    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_())


4.自定义信号与自定义槽函数使用


# -*- 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)
    # 将自定义信号button_clicked_signal,连接到自定义槽函数btn_close
    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_())
相关文章
10 QT - 自定义信号和槽
10 QT - 自定义信号和槽
64 0
无参函数和有参函数的定义使用方法及其调用
无参函数和有参函数的定义使用方法及其调用
431 0
|
1月前
(7)Qt中的自定义槽(函数)
这篇文章介绍了在Qt中如何定义和使用自定义槽函数,包括类成员函数、静态类成员函数、全局函数和lambda表达式作为槽函数的示例,以及使用lambda表达式时的注意事项。
43 2
(7)Qt中的自定义槽(函数)
|
6月前
|
安全
【第二章】信号与槽——connect函数的用法
【第二章】信号与槽——connect函数的用法
|
4月前
|
开发者 Python
Python函数与模块使用方法
【7月更文挑战第24天】Python 是一种功能强大的编程语言,拥有丰富的函数和模块,使得开发者能够轻松地构建复杂的应用程序。本文将介绍 Python 中函数和模块的基本使用方法,并提供一些代码实例。
47 3
|
4月前
|
C++
Qt中的信号与槽如何学习?(包括自定义信号)这篇文章告诉你
以现实中的事件来举例的话,例如有两把不同颜色的信号枪,分别是红色,绿色,打响不通颜色的信号枪会触发不同的槽发生,比如说打响红色这个人就跑步,绿色就走步,但是还有一个很重要的机制,那就是连接,我们需要把信号枪去跟这个人的动作连接起来。 如果上面理解没问题的话我们可以把信号和槽看成两个工具,我们最重要的是如何去把这两个工具连接起来。 它的作用可以让我们更加灵活的去使用不同窗口间的切换以及某些事件的连接。
100 0
|
6月前
|
设计模式
【第二章】自定义信号和槽函数
【第二章】自定义信号和槽函数
|
编译器 C++
【Qt】信号槽的三种连接形式
三种形式的信号槽连接,connect 语法...
147 0
|
6月前
|
C++ 容器
[Qt5] 提升部件类的用法
[Qt5] 提升部件类的用法
99 0
qt信号和槽执行原理简单介绍
qt信号和槽执行原理简单介绍
144 0