自我介绍传递值时不等待

2024-10-01 09:36:32 发布

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

我正在用python制作一个gui,它使用串口发送命令。在我的旧脚本中,没有gui,我使用时间。睡眠(x) 在写命令之间(命令必须成功)。现在当我使用gui环境时,我不能使用sleep,所以我使用after。你知道吗

效果不错,但是: 我正在使用Tkinter作为我的gui。当我按下启动按钮时,OnButtonClickSTART在x时间后启动另一个函数。与自我介绍我在每个进程之间等待x秒。它可以工作,但是当我给函数赋值时,它不会等待给定的时间。你知道吗

   def OnButtonClickSTART(self):
            print "START"
            self.button1.configure(state='disabled')
            self.after(1000, self.waitmore)

    def waitmore(self):
            value = 5
            print value
            self.after(10000,self.waitmuchmore(value))
    def waitmuchmore(self,value):
            print value
            self.after(10000,self.OnButtonClickSTOP)
    def OnButtonClickSTOP(self):
            print "STOP"
            self.button1.configure(state='normal')

这不是一个更好的方法来执行一系列命令,它们之间有一定的时间间隔。与sleep类似,但只使用一个函数,不禁用gui。你知道吗

泰铢


Tags: 函数命令selfvalueconfiguredef时间gui
1条回答
网友
1楼 · 发布于 2024-10-01 09:36:32

使用self.waitmuchmore(value)将立即调用waitmuchmore方法。您需要使用^{} expression^{}返回一个新函数,该函数将用value调用waitmuchmore,并将其传递给self.after

lambda: self.waitmuchmore(value)

或者

import functools
functools.partial(self.waitmuchmore, value)

相关问题 更多 >