【发布时间】:2019-08-30 19:37:19
【问题描述】:
在我的方法中的其余代码完成运行之前,我的 kivy 弹出窗口不会出现在屏幕上。我正在尝试显示一个进度条,因此它在当前状态下毫无价值。
我已尝试线程化进程以打开弹出窗口并尝试不使用线程。
from kivy.uix.progressbar import ProgressBar
from kivy.uix.popup import Popup
import threading
def submit():
popup = Popup(title='Submit Progress', content=ProgressBar())
thread_object = threading.Thread(target=popup.open)
thread_object.start()
perform some iterable actions
increment progress bar value
if progress_bar.value == progress_bar.max:
popup.auto_dismiss = True
# This is when the popup finally appears
我需要我的弹出窗口的打开功能在执行可迭代操作之前真正生效,以便用户可以看到进度
【问题讨论】:
-
您试图在线程中打开弹出窗口并在主线程中运行您的处理,但这是错误的方法。在主线程中打开弹出窗口,然后在另一个线程中运行递增过程。
-
我已尝试按照您的建议更改为相反的结果,结果完全相同。你能解释一下为什么你说它应该是这种方式而不是另一种方式吗?为什么这有关系?它可以帮助我了解我还需要切换什么。 @inclement
标签: python-3.x kivy