Python 3.x Python-Kivy:Label在函数执行期间不更新

Python 3.x Python-Kivy:Label在函数执行期间不更新,python-3.x,kivy,Python 3.x,Kivy,我看到还有其他与此相关的主题,但我可以让这个简单的项目工作。 我需要一个标签,以更新与功能状态,而它正在运行只是为了让用户知道,该程序仍在工作,而功能正在处理,但标签只更新时,功能完成 这是文件 我的千伏 我做了这个解决方案,现在它正以我想要的方式工作,但不确定这是否是最好的方式 test.py from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.screenmanager import

我看到还有其他与此相关的主题,但我可以让这个简单的项目工作。 我需要一个标签,以更新与功能状态,而它正在运行只是为了让用户知道,该程序仍在工作,而功能正在处理,但标签只更新时,功能完成

这是文件

我的千伏


我做了这个解决方案,现在它正以我想要的方式工作,但不确定这是否是最好的方式

test.py

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang.builder import Builder
from kivy.core.window import Window
import time
from kivy.clock import Clock

class ChangeLabel(Screen):
    def changeLabel(self):
        Clock.schedule_once(self.test)

    def test(self, dt):
        self.ids.labeltxt.text = 'Function is running...'#I wanna this in lablel while function is running
        time.sleep(2)# function to run
        self.ids.labeltxt.text = 'Completed'


class WindowManager (ScreenManager):
    pass

kv = Builder.load_file('my.kv')
class MyApp(App):
    def build(self):
        return kv

MyApp().run()
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang.builder import Builder
from kivy.core.window import Window
import time
from kivy.clock import Clock

class ChangeLabel(Screen):
    i = 0
    def changeLabel(self):
        Clock.schedule_interval(self.test, 0.05)

    def test(self, dt):
        if self.i == 0:
            self.ids.labeltxt.text = 'Function is running...'
            self.i = 1
        else:
            time.sleep(2)# function to run
            self.ids.labeltxt.text = 'Completed'
            self.i = 0
            Clock.unschedule(self.test)

class WindowManager (ScreenManager):
    pass

kv = Builder.load_file('my.kv')
class MyApp(App):
    def build(self):
        return kv

MyApp().run()
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang.builder import Builder
from kivy.core.window import Window
import time
from kivy.clock import Clock

class ChangeLabel(Screen):
    i = 0
    def changeLabel(self):
        Clock.schedule_interval(self.test, 0.05)

    def test(self, dt):
        if self.i == 0:
            self.ids.labeltxt.text = 'Function is running...'
            self.i = 1
        else:
            time.sleep(2)# function to run
            self.ids.labeltxt.text = 'Completed'
            self.i = 0
            Clock.unschedule(self.test)

class WindowManager (ScreenManager):
    pass

kv = Builder.load_file('my.kv')
class MyApp(App):
    def build(self):
        return kv

MyApp().run()