Kivy/Raspi着色器异常

2024-03-28 15:52:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Kivy在raspi3上编写一个GUI,它运行得很好,但是现在我添加了一些“屏幕”,当返回到前一个屏幕时会崩溃。在

基本上,我希望能够进入其他三个屏幕(TCS、EPC、CT)中的任何一个,并能够返回到simulation。我可以进行模拟,然后再进入其中的任何一个屏幕,但单击return按钮会导致程序崩溃,并显示以下消息:

Traceback (most recent call last):
   File "GUI.py", line 1329, in <module>
     MainApp().run()
   File "/usr/local/lib/python2.7/dist-packages/kivy/app.py", line 828, in run
     runTouchApp()
   File "/usr/local/lib/python2.7/dist-packages/kivy/base.py", line 500, in runTouchApp
     EventLoop.window.mainloop()
   File "/usr/local/lib/python2.7/dist-packages/kivy/core/window/window_egl_rpi.py", line 90, in mainloop
     self._mainloop()
   File "/usr/local/lib/python2.7/dist-packages/kivy/core/window/window_egl_rpi.py", line 85, in _mainloop
     EventLoop.idle()
   File "/usr/local/lib/python2.7/dist-packages/kivy/base.py", line 339, in idle
     self.dispatch_input()
   File "/usr/local/lib/python2.7/dist-packages/kivy/base.py", line 324, in dispatch_input
     post_dispatch_input(*pop(0))
   File "/usr/local/lib/python2.7/dist-packages/kivy/base.py", line 290, in post_dispatch_input
     wid.dispatch('on_touch_up', me)
   File "kivy/_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:8191)
   File "/usr/local/lib/python2.7/dist-packages/kivy/uix/behaviors/button.py", line 179, in on_touch_up
     self.dispatch('on_release')
   File "kivy/_event.pyx", line 714, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:8146)
   File "kivy/_event.pyx", line 1225, in kivy._event.EventObservers.dispatch (kivy/_event.c:14035)
   File "kivy/_event.pyx", line 1109, in kivy._event.EventObservers._dispatch (kivy/_event.c:12816)
   File "/usr/local/lib/python2.7/dist-packages/kivy/lang/builder.py", line 64, in custom_callback
     exec(__kvlang__.co_value, idmap)
   File "<string>", line 540, in <module>
   File "kivy/properties.pyx", line 423, in kivy.properties.Property.__set__ (kivy/properties.c:5572)
   File "kivy/properties.pyx", line 461, in kivy.properties.Property.set (kivy/properties.c:6405)
   File "kivy/properties.pyx", line 516, in kivy.properties.Property.dispatch (kivy/properties.c:7105)
   File "kivy/_event.pyx", line 1225, in kivy._event.EventObservers.dispatch (kivy/_event.c:14035)
   File "kivy/_event.pyx", line 1131, in kivy._event.EventObservers._dispatch (kivy/_event.c:13193)
   File "/usr/local/lib/python2.7/dist-packages/kivy/uix/screenmanager.py", line 973, in on_current
     self.transition.start(self)
   File "/usr/local/lib/python2.7/dist-packages/kivy/uix/screenmanager.py", line 369, in start
     self.add_screen(self.screen_in)
   File "/usr/local/lib/python2.7/dist-packages/kivy/uix/screenmanager.py", line 505, in add_screen
     self.fbo_out = self.make_screen_fbo(self.screen_out)
   File "/usr/local/lib/python2.7/dist-packages/kivy/uix/screenmanager.py", line 469, in make_screen_fbo
     fbo = Fbo(size=screen.size)
   File "kivy/graphics/fbo.pyx", line 150, in kivy.graphics.fbo.Fbo.__init__ (kivy/graphics/fbo.c:3155)
   File "kivy/graphics/instructions.pyx", line 754, in kivy.graphics.instructions.RenderContext.__init__ (kivy/graphics/instructions.c:11094)
   File "kivy/graphics/shader.pyx", line 186, in kivy.graphics.shader.Shader.__init__ (kivy/graphics/shader.c:4152)
   File "kivy/graphics/shader.pyx", line 695, in kivy.graphics.shader.Shader.vs.__set__ (kivy/graphics/shader.c:11550)
   File "kivy/graphics/shader.pyx", line 557, in kivy.graphics.shader.Shader.build_vertex (kivy/graphics/shader.c:9283)
   File "kivy/graphics/shader.pyx", line 587, in kivy.graphics.shader.Shader.link_program (kivy/graphics/shader.c:9736)
 Exception: Shader didnt link, check info log.

完整代码在这里:https://github.com/ISS-Mimic/Mimic/blob/master/Pi/GUI.py

相关(我认为)片段:

^{pr2}$

和kv代码:

^{3}$

图形用户界面供参考:除了从EPS、TCS或CT返回(从模拟返回到主屏幕工作正常)外,每个屏幕都工作正常 enter image description hereenter image description here

任何帮助都将不胜感激。仅供参考,我对kivy和python还是新手,几乎不知道我在做什么。。。在


Tags: inpyeventlibpackagesusrlocaldist