pyside2&pyqt5的信号与槽机制

1、信号与槽的两种写法

第一种情况:

from PySide2 import QtWidgets, QtCore
import sys
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
btn = QtWidgets.QPushButton(widget)
btn.clicked.connect(widget.close)
widget.show()
sys.exit(app.exec_())

第二种情况:

from PySide2 import QtWidgets, QtCore
import sys
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
btn = QtWidgets.QPushButton(widget)
QtCore.QObject.connect(btn,QtCore.SIGNAL("clicked()"),widget,QtCore.SLOT("close()"))
widget.show()
sys.exit(app.exec_())

2、自定义槽函数

from PySide2 import QtWidgets, QtCore
import sys
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
btn = QtWidgets.QPushButton(widget)
@QtCore.Slot()
def changeTex():
btn.setText("ok")
btn.clicked.connect(changeTex)
widget.show()
sys.exit(app.exec_())

3、带参数槽函数

(1)lambad写法:

from PySide2 import QtWidgets,QtCore
import sys
class MyForm(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyForm, self).__init__(parent)
button1 = QtWidgets.QPushButton(self)
button1.clicked.connect(lambda: self.on_button(1))
def on_button(self, n):
print('Button {0} clicked'.format(n)) if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
form = MyForm()
form.show()
app.exec_()

(2)使用functools里的partial函数。

from functools import partial
from PySide2 import QtWidgets,QtCore
import sys
class MyForm(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyForm, self).__init__(parent)
button1 = QtWidgets.QPushButton(self)
button1.clicked.connect(partial(self.on_button, 1))
def on_button(self, n):
print('Button {0} clicked'.format(n)) if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
form = MyForm()
form.show()
app.exec_()

PyQt5 & PySide2信号与槽机制1的更多相关文章

  1. PyQT5:信号和槽

    PyQT5:信号和槽 信号和槽 Qt的主要特征之一是它使用信号和插槽在对象之间进行通信. 当潜在的事件发生时,会发出一个信号.插槽是可调用的Python,如果将信号连接到插槽,则在发出信号时将调用该插 ...

  2. qt中信号与槽机制

    一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...

  3. Qt入门之信号与槽机制

    一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...

  4. QT的信号与槽机制介绍

      信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗 ...

  5. Qt源码分析之信号和槽机制

    Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个 ...

  6. Qt 的信号与槽机制介绍(10个要注意的问题)

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  7. 关于Qt信号与槽机制的传递方向性研究(结论其实是错误的,但是可以看看分析过程)

    最近由于项目的需求,一直在研究Qt.信号与槽机制是Qt的一大特色,该机制允许两者间传递参数,依次来实现对象间的通信.这个参数会分别存在于信号的参数列表和槽函数的参数列表中.需要注意的是,若将槽函数绑定 ...

  8. Qt信号和槽机制

    概述 信号和槽机制是QT的核心机制,要精通QT编程就必须对信号和槽有所了解.信号和槽是一种高级接口,应用于对象之间的通信,他是QT的核心特性,也是QT差别于其他工具包的重要地方.信号和槽是QT自行定义 ...

  9. 【qt】QT 的信号与槽机制

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  10. 【QT学习】信号和槽机制

    QT中发射信号使用 emit 来完成. 类要使用信号和槽机制,必须从QObject或者QObject子类继承.必须在类的定义中加上 Q_OBJECT 宏. 信号和槽连接时,参数类型必须相同. 关键字大 ...

随机推荐

  1. QT如何安装?

    Qt安装教程 OLD HELPS <oldhelps@126.com > 目录 Qt安装教程 下载 注册.登录 接受验证邮件 安装 下载 从https://download.qt.io/n ...

  2. 编译内核出现错误cc1: error: code model kernel does not support PIC mode

    删除该模块目录下的 .cache.mk 文件就好了,重新 make 即可

  3. 指针和指针运算符一起时的运算规则(比如*p++和*++p的区别)

    接下来,通过示例彻底理解自增运算符的两种用法(自减的用法与之类似,只不过是加1变成了减1). 1.++i和i++的区别 如清单1(注意代码中的注释): #include <stdio.h> ...

  4. viewpager加fragment可滑动加radio跟随滑动

    public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, V ...

  5. No.1.4

    选择器进阶 [复合选择器]:后代选择器:空格    语法:选择器1 选择器2 {css} 子代选择器:>   语法:选择器1>选择器2 {css} [并集选择器]:, 语法:选择器1 , ...

  6. 剪裁圆形图片cropie

    <!DOCTYPE html> <html> <head> <script src="https://cdn.bootcss.com/jquery/ ...

  7. 面试视频知识点整理1-13(mvvm框架)

    1.了解mvvm框架吗? Vue.js React Angular 2.谈谈你对mvvm的认识 由mvc和mvp演变而来 3.双向绑定是什么原理? object.defineProperty的用法要熟 ...

  8. .NET Core中的AOP

    1.AOP的应用场景 AOP全称Aspect Oriented Progarmming(面向切面编程),其实AOP对ASP.NET程序员来说一点都不神秘,你也许早就通过Filter来完成一些通用的功能 ...

  9. [BOM]判断是否为pc页面、是否为ios页面

    常用于pc页面与h5页面的跳转和适配,区分不同设备进行下载跳转区分. var is_pc = !(navigator.userAgent.match(/(phone|pad|pod|iPhone|iP ...

  10. 模块二:os模块、sys模块、json模块、pickle模块,包

    os模块 1 os模块是与操作系统交互的一个接口 2 import os: 3 1.获取当前工作目录 4 print(os.getcwd()) 5 6 2.切换到D:\yuan文件目录 7 os.ch ...