Python:如何在不发送任何参数的情况下检测滑块移动并调用函数?

2024-06-08 18:15:22 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以检测滑块的移动并调用另一个函数而不发送任何带有信号的参数?你知道吗

我有一个函数,其中安装了默认参数,所以不用说,如果我用一个有参数的信号调用它(slider.Value已更改())它将覆盖默认参数。你知道吗

      funcdic = {}
      for x in range(0,3):
        def slidechanged(foo=x):
            svalue = str(self.sliderdic1[foo].value())
            self.entrydic2[foo].setText(svalue)
            print svalue
        funcdic.update({x:slidechanged})

Tags: 方法函数inselffor参数foo信号
1条回答
网友
1楼 · 发布于 2024-06-08 18:15:22

事实证明,使用lambda调用函数而不传递参数是很容易的,我不喜欢忘记这么简单的事情。我在字典里有三个滑块,所以我做了三个信号。你知道吗

      funcdic = {}
      for x in range(0,3):
        def slidechanged(foo=x):
            print foo
            svalue = str(self.sliderdic1[foo].value())
            self.entrydic2[foo].setText(svalue)
            print svalue
        funcdic.update({x:slidechanged})

      self.sliderdic1[0].valueChanged.connect(lambda: funcdic[0]())
      self.sliderdic1[1].valueChanged.connect(lambda: funcdic[1]())
      self.sliderdic1[2].valueChanged.connect(lambda: funcdic[2]())

相关问题 更多 >