python算法之三角形问题

2021-04-03 04:26

阅读:489

标签:简单   sum   python算法   经典   pre   ==   turn   pytho   动态规划   

在使用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算法之三角形问题

标签:简单   sum   python算法   经典   pre   ==   turn   pytho   动态规划   

原文地址:https://www.cnblogs.com/niuniuc/p/13467145.html


评论


亲,登录后才可以留言!