我尝试从kivy.core.window导入窗口导入,以便启用纹理支持以显示numpy数组中的图像(请参阅https://groups.google.com/forum/#!topic/kivy-users/2Hvarxhz6lU)。
但是,当我运行导入时,Kivy会尝试打开另一个空白且无响应的窗口。当我删除import语句时,应用程序将正常启动。
任何人都可以指出我正确的方向导入Window以允许纹理支持没有这种行为吗?
谢谢,
奥利弗。
答案 0 :(得分:1)
这是非常期待的,因为Kivy建立在这种导入行为的基础之上。在简单的Window
导入中,例如在控制台中:
>>> from kivy.core.window import Window
创建一个空白的OpenGL窗口,它等待进一步的指令,如第一次绘图和其他初始化的东西。
让我们看一下邮件列表中的代码:
class MainConsole():
def build(self):
texture = Texture.create() # no window, boom
if __name__ == '__main__':
MainApp().run() # except other stuff also creates a window
要使其真正起作用,您必须在创建Window
后 创建纹理 ,即:
class MainConsole():
def build(self):
from kivy.core.window import Window
texture = Texture.create() # window, no boom
如果您尝试执行以下操作,如果您尝试在Thread
(不确定)或multiprocessing
(最有可能)执行此操作,则可能会发生这种情况:
def blob():
from kivy.core.window import Window
texture = Texture.create()
如果您在单独的流程中运行此功能,则单独的流程将不会具有相同的Window
,因此它会创建一个带有Window
导入的新流程,您就可以了。
要解决此问题,您可以做两件事:
Config
并使用Window
和top
left
移出查看区域的某个位置
Window