1. 首页
  2. IT资讯

PyQt 编程入门之 信号与槽【1】

“u003Cdivu003Eu003Cp class=”ql-align-justify”u003E上一篇介绍了PyQt预定义信号和预定义槽的连接。本篇讲解如何自定义槽,以及如何向槽传递额外的信号参数。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Et信号与槽连接的格式为: object.signal.connect(callable)u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eobeject为QObject任何派生类的实例(比如按钮),signal为object发射的信号(如点击事件clicked),callable为槽函数名(不能带括号,所以不能带参数)。例如:u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Etbutton.clicked.connect(self.on_clicked)u003Cbru003Etdef on_clicked(self):#在类中为方法,只带一个参数self;否则无参数u003Cbru003Et #do somethingu003Cbru003Et passu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003E可以为不同的信号编写不同的槽函数。但有时候为了简洁,需要将多个信号连接到同一个槽上,并需要根据连接的不同信号做出不同的响应,但是默认情况下槽函数不能传递参数,该如何做呢?u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E第一种方法:用 无参的lambda函数调用有参的事件处理函数u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003E格式为: object.signal.connect(lambda :callable(para list))u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003E示例代码如下:u003Cu002Fpu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F57b4663194e54fc78fce38473ae36e3e” img_width=”289″ img_height=”122″ alt=”PyQt 编程入门之 信号与槽【1】” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cp class=”ql-align-center”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F8941bb9beb4f4b4e9ae0de9df145bf27″ img_width=”565″ img_height=”491″ alt=”PyQt 编程入门之 信号与槽【1】” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002Fe068950576fc4c21913156e7078a46bc” img_width=”559″ img_height=”363″ alt=”PyQt 编程入门之 信号与槽【1】” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E第二种方法:使用偏函数来封装带参数的槽。下面仅列写代码的不同部分。u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002Fb3d6079dea66448fad75b54122fc3874″ img_width=”564″ img_height=”85″ alt=”PyQt 编程入门之 信号与槽【1】” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E第三种方法:在槽函数中使用self.sender()得到事件源。下面仅列写代码的不同部分。u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F7af900f6c0ef4683afa88c23ae43b208″ img_width=”563″ img_height=”113″ alt=”PyQt 编程入门之 信号与槽【1】” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cu002Fdivu003E”

原文始发于:PyQt 编程入门之 信号与槽【1】

主题测试文章,只做测试使用。发布者:玩家L-,转转请注明出处:http://www.cxybcw.com/10670.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code