当我使用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()
编辑:如果我对几个process
和exit()
命令进行注释,我的标签将正常显示
多亏了this thread才找到了解决方案
您必须使用kivy
Clock.schedule_once()
方法:kivy clock doc在我的案例中,我只是创建了一个函数fermerbanc\u schedule,负责:
通过
schedule_once
调用fermerBanc函数def fermerBanc\u计划(self,*args): 自我提醒=Label(text=“Merci de patienter…”,font\u size='55sp',size=(100,50),pos\u hint={'center\u x':.5,'center\u y':.5}) self.add\u小部件(自我提醒) Clock.schedule\u一次(λdt:费默班克(self,*args),0)
相关问题 更多 >
编程相关推荐