gpt4 book ai didi

python - Kivy:如何在等待显示另一个小部件时显示一个小部件(均从同一事件调用)

转载 作者:行者123 更新时间:2023-11-28 22:29:52 25 4
gpt4 key购买 nike

当单击“确定按钮”时,我的 kivy 应用程序检索有时包含 100 多个文件夹的列表,并显示一个 GridLayout,其中每个文件夹有 4 列和 1 行。每行有 3 个可滚动标签和 1 个复选框。这个 GridLayout 有时需要接近 12 秒才能生成,所以我想同时显示一些东西(标签,图像......)。

尝试 1:我的“确定按钮”调用 def DisplayTable。我尝试在 DisplayTable 的开头简单地添加 self.add_widget(Label_when_waiting)(因此在任何处理或生成 GridLayout 之前)但是 Label_when_waiting 仅在 GridLayout 时显示显示。

尝试 2:我尝试将 def DisplayTable 分成两个 def,Diplay_Label_when_waiting(由“确定按钮”调用的那个)和 DisplayTable:

def Diplay_Label_when_waiting(self, *args):
self.add_widget(Label_when_waiting)
DisplayTable(self, *args)

但是这里还是要强调一下,Label_when_waiting 只有在显示 GridLayout 时才会显示。

那么我如何在 GridLayout 之前显示 Label_when_waiting 知道两个显示都必须由“确定按钮”触发

最佳答案

在标签显示后使用Clock.schedule_once显示Grid:

def Diplay_Label_when_waiting(self, *args):
self.add_widget(Label_when_waiting)
Clock.schedule_once(lambda dt: DisplayTable(self, *args), 0)

您还可以使用 kivyoavdelayable(免责声明 - 我是作者...)

from kivyoav.delayed import delayable

@delayable
def Diplay_Label_when_waiting(self, *args):
self.add_widget(Label_when_waiting)
yield 0.0 # delay of 0ms , will cause the UI to update...
DisplayTable(self, *args)

关于python - Kivy:如何在等待显示另一个小部件时显示一个小部件(均从同一事件调用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42811241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com