【问题标题】:Displaying something in kivy while a process is running background进程在后台运行时在 kivy 中显示某些内容
【发布时间】:2019-03-19 09:53:03
【问题描述】:

当我使用 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:
                Logger.warning('fermerBanc: impossible de generer un graph 4, fichier vide')

            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)

            p1.join()
            p2.join()
            p3.join()
            p4.join()

        exit()

编辑:如果我评论几个 processexit() 命令,我的标签将正常显示

【问题讨论】:

    标签: python raspberry-pi kivy


    【解决方案1】:

    感谢this thread,刚刚找到解决方案

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

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

    • 在屏幕上显示等待消息
    • 通过schedule_once调用了fermerBanc函数

      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)

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多