PyQt5入门与实战(三)信号与槽函数,获取用户输入信息

前言:想写一个应用好久了,独立开发大概是每个程序员的梦想。自从之前写了一个数据挖掘的小模型,一直想封装一下,故而上路,所以此系列算不上教程,只是记录分享这个过程的坑点和经验,力求有头有尾,网上抄来抄去的教程真的看的头疼,己所不欲勿施于人,在封装完毕之后我会将完整的代码贴出来与大家分享。

教程合集地址:https://blog.csdn.net/infent/column/info/30927

第三篇 信号与槽,点击事件的实现 

PyQt5入门与实战(三)信号与槽函数,获取用户输入信息_第1张图片

接着前一篇的进度,我们初步设计好了主界面,此处需要注意的是对于有交互操作的组件,最好起一个有意义的变量名,以方便之后调用。

PyQt5入门与实战(三)信号与槽函数,获取用户输入信息_第2张图片

从图中可以看出,对于label标签我们一般不做命名,因为它们基本是展示用的,而对于需要输入信息的地方我们是将其命名了,作为MainWindow下的一个属性,这样就能在我们的自定义界面类里获取到了。

然后是QT5的信号与槽的机制,我粗浅的理解就是,组件发出信号,这个信号可能是点击,可能是鼠标滑过,然后这个信号传送给某个类(槽),这个类即刻执行对应的方法。在我们当前的场景中,我们想点击计算违规因子,然后把输入的这些信息都传入到后台,然后进行业务逻辑操作。

那么第一步,打开信号与槽编辑模式,就是下边这个小图标。

第二步,从按钮上拖出一条小电线,插入到你想调用的对象上。

 

PyQt5入门与实战(三)信号与槽函数,获取用户输入信息_第3张图片

在这里,我们的信号是按钮被点击时就调用MainWindow里的汽车信息属性,注意这个操作不像是close()之类的自带操作,它是需要自建的,建好之后相当于一个父类接口,在子类实现对应的方法就能实现响应了

在转换过来的py文件的setUI方法最后有这么一句,self.calculateillegal.clicked.connect(MainWindow.getinfo),这个就相当于触发语句。在我们自己的类里,你只需要定义这个函数,并实现逻辑就可以完成调用。

PyQt5入门与实战(三)信号与槽函数,获取用户输入信息_第4张图片

这里我犯了个错误,我一直以为需要手动调用,触发信号和槽函数,我就把这个写到mian函数里了,导致每次都触发两次,找了半天一度怀疑人生,后来发现,这个只需要写实现类就行了。

下一篇,数据存取到MySQL,使用pandas的DataFrame实现数据读取并导入模型。

 

 

 

 

 

你可能感兴趣的:(PyQt5,pyqt5开发流程)