美文网首页
PyQt5编程(14):传递数据给数据处理程序

PyQt5编程(14):传递数据给数据处理程序

作者: 用电热毯烤猪 | 来源:发表于2018-01-01 21:36 被阅读0次

    指定一个处理程序后,就是将一个函数或方法的引用传递给connect()方法。如果需要传递数据给处理程序,可以按以下的方法:

    创建一匿名函数,带参数调用该函数。如:
    self.buttonl.clicked.connect (lambda: self.on_clicked_buttonl (10))

    如果传递给处理程序的值是在程序运行过程中计算得到的,需要在匿名函数中指定一个参数来存储该值。
    y=10
    self.buttonl.clicked.connect (lambda x = y: self.on_clicked_buttonl(x))
    传递一个实例引用给connect()方法,该实例中定义了call()函数。要传递的值作为构造函数的参数。如:

    class MyClass():
         def __init__(self,x=0):
               self.x=x
         def __call()__:
               print("x=",self.x)
        ......
    self.button1.clicked.connect(MyClass(10))
    

    传递处理程序的引用和数据给partial()函数。例如:

        from functools import partial
        self.button1.clicked.connect(partial(self.on_clicked_button1,10))
    

    在产生信号时有预定义的值,可在处理程序的传递参数之后获得。例如,点击鼠标的处理程序,有一个Boolean参数和额外传递的参数:

        self.buttonl.clicked.connect (partial (self.on_clicked_button1, 10))
    

    处理程序为:

    def on_clicked_button1 (self, x, status):
         print ("button1 pressed", x, status)
    

    相关文章

      网友评论

          本文标题:PyQt5编程(14):传递数据给数据处理程序

          本文链接:https://www.haomeiwen.com/subject/mulxnxtx.html