【PySide6】4. 信号槽

文章目录

信号槽是 qt 的核心机制,在创建事件循环之后,通过建立信号与槽的连接就可以实现对象之间的通信。

当信号发射时,连接的槽函数将自动执行,在 PySide6 中,信号与槽通过 QObject.signal.connect() 连接。

多个信号可以与单个槽进行连接,单个信号也可以与多个槽进行连接。不同的控件能够发射的信号 种类和触发时机也是不同的。

信号槽的使用

直接上例子,新建一个窗口,窗口类型为 Widget,将一个按钮拖入该窗口,要实现的功能是将鼠标左键单击这个按钮的时候,则关闭这个窗口。

将按钮拖入窗口中,更改按钮的文本和该按钮对应的对象名称。按钮名称为 “关闭窗口”,按钮的对象名称(objectName:)为 btn_close_win。如下图:
在这里插入图片描述
依次点击: designer 的菜单栏 -> 编辑 -> 编辑信号/槽,进入信号与槽的编辑模式,将鼠标放在关闭窗口的按钮上,点击鼠标左键并拖到接收者(也就是窗体上),这样就建立了连接。
在这里插入图片描述
接着会弹出配置连接的窗口,如上图所示,可以看到控件按钮会发射很多信号,只要选择一个信号,并单击确定按钮,就会生成对应的槽函数进行该信号的处理。

由于要达到单击按钮关闭窗口的效果,所以这里要勾选 “显示从 QWifget 继承的信号和槽” 复选框,在左侧的窗口中选择 clicked() 选项(表示单击信号),右侧的窗口中选择 close() 选项(表示关闭窗口)。

整体流程就是当单击这个 关闭窗口 的按钮,会发射 clicked 信号到这个窗体,这个信号会被窗体的 close() 捕捉到,触发该窗体的 close 行为,关闭该窗体。

让我们将这个窗体保存名为 WinSignalSlog.ui,然后使用 uic 编译为 py 代码,启动这个窗口,点击按钮尝试看是否该窗体会关闭。启动的代码如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值