为了账号安全,请及时绑定邮箱和手机立即绑定

在进程运行后台时在 kivy 中显示某些内容

在进程运行后台时在 kivy 中显示某些内容

PIPIONE 2021-12-09 15:35:11
当我使用 matplotlib 离开我的 kivy 应用程序时,我试图生成一个图表。生成这些图形的过程时间约为 20 秒,我想在此期间警告用户。我尝试使用 Kivy 弹出窗口,但没有用。我试图添加一个标签,但它似乎也不起作用。这就是为什么我真的需要帮助!我的代码:    def fermerBanc(self):          list_argument_graph=[]        list_argument_graph.append(passerelle.graph1.y_low_min)        list_argument_graph.append(passerelle.graph1.y_low_max)        list_argument_graph.append(passerelle.graph1.y_high_min)        list_argument_graph.append(passerelle.graph1.y_high_max)        list_argument_graph.append(passerelle.graph1.setTaille)        list_argument_graph_1=list(list_argument_graph)        list_argument_graph_1.insert(0, chemin1)        list_argument_graph_2=list(list_argument_graph)        list_argument_graph_2.insert(0, chemin2)        list_argument_graph_3=list(list_argument_graph)        list_argument_graph_3.insert(0, chemin3)        list_argument_graph_4=list(list_argument_graph)        list_argument_graph_4.insert(0, chemin4)        if(passerelle.graph1.flagGraph):            p1 = Process(target=process_graph, args=(list_argument_graph_1,))            p2 = Process(target=process_graph, args=(list_argument_graph_2,))            p3 = Process(target=process_graph, args=(list_argument_graph_3,))            p4 = Process(target=process_graph, args=(list_argument_graph_4,))            try:                p1.start()            except AttributeError:                Logger.warning('fermerBanc: impossible de generer un graph 1, fichier vide')            try:                p2.start()                  pass            except AttributeError:                Logger.warning('fermerBanc: impossible de generer un graph 2, fichier vide')            try:                p3.start()                pass            except AttributeError:                Logger.warning('fermerBanc: impossible de generer un graph 3, fichier vide')            try:                p4.start()                pass                          except AttributeError:编辑:如果我评论几个process和exit()我的标签正常显示的命令
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

由于这个线程,刚刚找到了解决方案

你必须使用 kivy Clock.schedule_once()方法:kivy clock doc

我的情况,我只是创建了一个函数 fermerbanc_schedule 负责:

  • 在屏幕上显示等待消息

  • 通过调用 fermerBanc 函数 schedule_once

    def fermerBanc_schedule(self, *args): self.msgWarning = Label(text="Merci de Patienter...", font_size='55sp', size=(100, 50), pos_hint={'center_x': .5, 'center_y':.5}) self.add_widget(self.msgWarning) Clock.schedule_once(lambda dt: self.fermerBanc(self, *args), 0)


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信