在Python中初始化kivy主应用程序类之外的弹出窗口
我正在尝试编写一个函数,该函数在KivyGUI中根据条件启动一个弹出窗口。该方法在主应用程序之外,因为我使用多线程同时运行这两个程序。每次我尝试在主应用程序之外的方法中初始化一个新的弹出窗口时,它都会崩溃。如果我不初始化它,它运行正常。有什么想法吗?您必须在kivy线程上执行与GUI相关的操作(如打开或关闭在Python中初始化kivy主应用程序类之外的弹出窗口,python,multithreading,kivy,Python,Multithreading,Kivy,我正在尝试编写一个函数,该函数在KivyGUI中根据条件启动一个弹出窗口。该方法在主应用程序之外,因为我使用多线程同时运行这两个程序。每次我尝试在主应用程序之外的方法中初始化一个新的弹出窗口时,它都会崩溃。如果我不初始化它,它运行正常。有什么想法吗?您必须在kivy线程上执行与GUI相关的操作(如打开或关闭弹出窗口) 在代码中,调用sm.open\u unrecognized()doClock.schedule\u一次(sm.open\u unrecognized,0)。这将在显示下一帧后,在k
弹出窗口
)
在代码中,调用sm.open\u unrecognized()
doClock.schedule\u一次(sm.open\u unrecognized,0)
。这将在显示下一帧后,在kivy线程上安排调用open\u unrecognized
可以自动关闭弹出窗口
(在弹出窗口
外的任何单击)或明确使用弹出窗口中的按钮
。请注意,按钮
事件调用的任何代码都是在kivy线程上执行的
有关更多信息,请参见您只能在主线程中进行gui更新…如何初始化弹出窗口并基于第二个线程打开它?如果你能帮忙的话,我可以私下把我的代码发给你。使用Clock.schedule\u once()
。嗨,约翰,我不知道你的确切意思。这是我的密码。你可以看到我正在实例化这个应用程序,并试图在第二个线程中调用它。我试图在可以访问应用程序screenManager的地方更改它,但当我调用它时,它崩溃了。我正在通过App.get_running_App().root.open_recognized()执行此操作