python算法之三角形问题
2021-04-03 04:26
标签:简单 sum python算法 经典 pre == turn pytho 动态规划 在使用PyQT5做GUI桌面应用程序设计时,经常需要对在两个界面之间做信号的传递,这个时候我们需要通过建立信号pyqtSignal 然后通过Connect 相应的槽函数来完成界面之间的数据传递。 1、pyqtSignal 通过pyqtSignal 可以声明不带参数和带参数的实例对象,带参数的实例对象可以声明整形、字符型、列表、字典等数类型,具体如下: 对信号携带的数据类型做完相应的实例声明后,通过emit的方式进行信号的发送,但是要根据你声明的信号类型,emit中做相应类型数据的发送 pyqtSignal 实例对象通过connent 对应函数的方式 ,将信号与槽函数做绑定处理 具体2个界面之间的信号传递如下: python算法之三角形问题 标签:简单 sum python算法 经典 pre == turn pytho 动态规划 原文地址:https://www.cnblogs.com/niuniuc/p/13467145.htmlfrom 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])
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")
signal1.connetc(signalCall1)
def signalCall1():
pass
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)
上一篇:Java编译解释之cmd