如何解决Kivy错误:错误窗口(Window参数无效)?

时间:2017-10-19 22:31:35

标签: python runtime-error kivy

我安装了Kivy和Cython。我使用VirtualBox和Arch Linux与Gnome作为我的显示管理器。创建以下应用程序后,

from kivy.app import App
from kivy.uix.button import Button

class CalcApp(App):
    def build(self):
        return Button(text="Hello World")

if __name__ == '__main__':
    CalcApp().run()

我收到以下错误

[INFO   ] [Logger      ] Record log in /home/kyle/.kivy/logs/kivy_17-10-19_40.txt
[INFO   ] [Kivy        ] v1.10.0
[INFO   ] [Python      ] v3.6.2 (default, Jul 20 2017, 03:52:27) 
[GCC 7.1.1 20170630]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [OSC         ] using <multiprocessing> for socket
[INFO   ] [Window      ] Provider: sdl2(['window_egl_rpi'] ignored)
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  4 (X_DestroyWindow)
  Resource id in failed request:  0x0
  Serial number of failed request:  151
  Current serial number in output stream:  152

如果我运行命令unset DISPLAY它按预期工作,但没有选择最小化,最大化和关闭通常可用的窗口。

有没有办法解决这个错误,所以每次新的终端窗口打开并且看起来像普通窗口时,我都不需要输入未设置的DISPLAY?

2 个答案:

答案 0 :(得分:1)

在Github上看看这个问题,似乎可能是同样的问题:https://github.com/kivy/kivy/issues/5476

对于后代(如果链接中断),它可能是一个多重采样问题。

尝试以下修正:

  • 使用多次采样的其他桌面环境
  • 将sdl2降级为2.0.5
  • 将sdl2升级到2.0.7
  • 在kivy中禁用多重采样(可以通过编辑〜/ .kivy / config.ini并将多重采样设置为0来完成

答案 1 :(得分:0)

我的问题已通过更新解决了。大约一个月后,我能够按预期使用Kivy,没有任何错误。