Für einen Prozess angezeigt wird, nutze ich das Internet, einige Daten zu erwerben. Also für die verarbeiteten möchte ich eine einfache Popup-Box (mit einem Text Loading ...) am Anfang des Prozesses angezeigt werden, aber wenn ich den Testcode ausgeführt habe, habe ich beobachtet, dass das Popup-Fenster am Ende des Prozesses eher angezeigt wird als am Anfang des Prozesses, der es nutzlos macht. Hier ist der Testcode, den ich verwende. Ihre Hilfe wird geschätzt, danke.Kivy Popup am Ende eines laufenden Prozesses in meinem app
class ScreenManagement(ScreenManager):
def popup(self):
self.pop_up=Popup(title='Loading...')
self.pop_up.open()
def popup_done(self):
self.pop_up.dismiss()
def ite(self):
for i in range(100):
App.get_running_app().root.current='second'
return i
def thread_it(self,fx):
self.popup()
mythread = threading.Thread(target=fx)
mythread.start()
def ite(self,num):
for i in range(num):
txt=str(i)*40
self.ids.lbl.text=txt
print txt
#if i==num-1: #this is not working
# self.popup_done()
class labelApp(App):
def build(self):
pass
labelApp().run()
.kv Datei
ScreenManagement:
Screen:
BoxLayout:
Button:
#on_press:root.popup()
#on_release:root.popup_done()
on_press:root.thread_it(root.ite(40000))
on_press:root.current='second'
Screen:
name:'second'
BoxLayout:
Label:
id:lbl
text: 'hello'
Danke, das löst mein Problem! – Linh