从零开始学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_())
相关文章
|
8月前
10 QT - 自定义信号和槽
10 QT - 自定义信号和槽
40 0
|
9月前
无参函数和有参函数的定义使用方法及其调用
无参函数和有参函数的定义使用方法及其调用
327 0
|
2月前
|
安全
【第二章】信号与槽——connect函数的用法
【第二章】信号与槽——connect函数的用法
|
5天前
|
C++
Qt中的信号与槽如何学习?(包括自定义信号)这篇文章告诉你
以现实中的事件来举例的话,例如有两把不同颜色的信号枪,分别是红色,绿色,打响不通颜色的信号枪会触发不同的槽发生,比如说打响红色这个人就跑步,绿色就走步,但是还有一个很重要的机制,那就是连接,我们需要把信号枪去跟这个人的动作连接起来。 如果上面理解没问题的话我们可以把信号和槽看成两个工具,我们最重要的是如何去把这两个工具连接起来。 它的作用可以让我们更加灵活的去使用不同窗口间的切换以及某些事件的连接。
|
1月前
Qml:第一个qml程序
Qml:第一个qml程序
|
2月前
|
设计模式
【第二章】自定义信号和槽函数
【第二章】自定义信号和槽函数
|
11月前
|
编译器 C++
【Qt】信号槽的三种连接形式
三种形式的信号槽连接,connect 语法...
109 0
|
2月前
|
C++ 容器
[Qt5] 提升部件类的用法
[Qt5] 提升部件类的用法
43 0
|
10月前
qt信号和槽执行原理简单介绍
qt信号和槽执行原理简单介绍
97 0