pyside6将信号与槽函数进行连接

在本文中,你将了解信号与槽的概念,掌握在Qt Designer中添加槽函数,以及在PySide6中的应用。

信号与槽

信号与槽是Qt中的一种事件处理机制;所谓的信号是,通俗点讲,就是窗口上各个控件发生的一些事件;比如当某个按钮被点击时,则产生一个信号,文本框中的内容被修改时也产生一个信号,窗口大小被调整时也能产生一个信号;

而槽就是处理这类信号的函数,也叫槽函数;我们可以通过将某个函数与产生的信号进行绑定,当这个信号产生时,槽函数将被调用;

绑定槽函数

        
        self.pushButton.clicked.connect(sayHello)

def sayHello():
        pass

在上面这段示例代码中,clicked表示pushButton被点击时的信号,connect将函数sayHello与信号进行连接,sayHello就是槽函数;

在Qt Designer中的应用

在Qt Designer中,可通过按F4,或通过点击工具栏中的【编辑信号/槽】进入编辑信号/槽模式;

qt designer

双击一个目标,并拖动线条到窗口;

qt designer

这个过程实现了将pushButtonclicked信号与QWidget对象(实际上是父类)的sayHello()函数进行绑定;

发送者为pushButton,信号为clicked,接收者为QWidget,槽函数为sayHello();

我们来看看将其转换成Python的代码:

class Ui_Form(object):
    def setupUi(self, Form):
        if not Form.objectName():
            Form.setObjectName(u"Form")
        
        pass#省略了一部分
        
        self.pushButton.clicked.connect(Form.sayHello)#将sayHello()函数定义到调用setupUi()时传递的那个类上

        pass

你需要将sayHello()定义到调用setupUi()时传递的那个类上,示例:

import sys
from PySide6 import QtWidgets,QtCore

import ui_xxxx # 创建UI的代码

class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        
        self.ui = ui_xxxx.Ui_Form()
        self.ui.setupUi(self) #这里传递的是MyWidget
    
    @QtCore.Slot()#修饰一下,表明这是个槽函数
    def sayHello(self):
        pass

在编辑信号与槽时,你可以尝试将线条拖动到另外一个控件上,比如文本框;

qt designer

你会发现它能连接文本框控件中的一些函数,比如清空文本框函数clear(),全选函数selectAll()

上图中,发送者为pushButton,信号为clicked,接收者为textEdit,槽函数为clear();

转换成Python代码,它是这样的:

        self.pushButton.clicked.connect(self.textEdit.clear)

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/pyside6-single-and-slot.html

分类: 计算机技术
推荐阅读:
Python hasattr()函数 hasattr() 是 Python 内置函数之一,用于检查一个对象是否具有指定的属性或方法。
Kali国内源 Kali是一个开源的、基于Debian的Linux发行版,旨在进行高级渗透测试和安全审计;Kali 包含数百个针对各种信息安全任务的工具,例如渗透测试、安全研究、计算机取证和逆向工程。
Golang一次性读取文件 从磁盘读取文件内容是I/O编程的基础;几乎所有编程语言实现起来都很简单,Golang也不例外:
Python sorted()函数 在 Python 中,sorted() 函数用于对序列进行排序。它可以接受多种类型的输入序列,包括列表、元组、集合和字典等。
C语言strcat()函数:追加字符串到另一个字符串尾部 strcat()是C语言标准库中的一个字符串函数,用于将一个字符串追加到另一个字符串的末尾;
Python str()函数 str() 函数用于将指定的对象转换为字符串类型。如果对象已经是字符串类型,则返回对象本身;否则,会调用对象的 __str__() 方法来进行转换。