python算法之三角形问题
Posted niuniuc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python算法之三角形问题相关的知识,希望对你有一定的参考价值。
在使用PyQT5做GUI桌面应用程序设计时,经常需要对在两个界面之间做信号的传递,这个时候我们需要通过建立信号pyqtSignal 然后通过Connect 相应的槽函数来完成界面之间的数据传递。
1、pyqtSignal
通过pyqtSignal 可以声明不带参数和带参数的实例对象,带参数的实例对象可以声明整形、字符型、列表、字典等数类型,具体如下:
from PyQt5.QtCore import QObject , pyqtSignal
#声明无参数的信号 signal1 = pyqtSignal() #声明带一个int类型参数的信号 signal2 = pyqtSignal(int) #声明带int和str类型参数的信号 signal3 = pyqtSignal(int,str) #声明带一个列表类型参数的信号 signal4 = pyqtSignal(list) #声明带一个字典类型参数的信号 signal5 = pyqtSignal(dict) #声明一个多重载版本的信号,包括带int和str类型参数的信号和带str类型参数的信号 signal6 = pyqtSignal([int,str], [str])
对信号携带的数据类型做完相应的实例声明后,通过emit的方式进行信号的发送,但是要根据你声明的信号类型,emit中做相应类型数据的发送
signal1.emit() signal2.emit(1) signal3.emit(1,"text") signal4.emit([1,2,3,4]) signal5.emit({"name":"wangwu","age":"25"}) signal6[int,str].emit(1,"text")
pyqtSignal 实例对象通过connent 对应函数的方式 ,将信号与槽函数做绑定处理
signal1.connetc(signalCall1) def signalCall1(): pass
具体2个界面之间的信号传递如下:
class Form1(): signal_1 = pyqtSignal(str) #主界面的信号用来绑定子界面类的函数方法 def __init__(self, num=10): #创建form2的对象 self.num = num self.form2 = Form2() #实例化子界面类 #将自己的信号和Form2的接受函数绑定 self.signal_1.connect(self.form2.get_data) #通过按键打开from2 self.pushButton.clicked.connect(self.open_form2()) def open_form2(self): #传递信号 self.form2.show() #通过pushbutton 展示子界面 如果只是做数据的传递,不打开第二个界面,可以 不调用self.form2.show() 方法 #向form2发送信号,将self.num发了出去 self.signal_1.emit(self.num) #通过自己的信号向子界面传递数据。要想多传递几个值,就在emit(值1,值2) 对应到子界面get_data接受就是2个参数,即get_data(值1,值2) #将form2的信号_singal_2和主界面的getData_F2连接 self.form2.signal_2.connect(self.getData_F2) def getData_F2(self,num2): #用于接收Form2发过来的数据 self.num2 = num2 # num2 就是子界面传递过来的数据 class Form2(): #子界面类 signal_2 = pyqtSignal(str) #子界面类创建信号用来绑定主界面类的函数方法 def __init__(self,num2=20): self.num2 = num2 def get_data(self,num): #接受Form1传过来的num,保存到自己的变量里面。 self.num = num #子界面通过signal_2 向主界面传递数据 signal_2.emit(self.num2)
以上是关于python算法之三角形问题的主要内容,如果未能解决你的问题,请参考以下文章