2017-06-11 4 views
1

kivy.core.window importウィンドウからインポートしようとしています。テクスチャサポートでnumpy配列の画像を表示できます(https://groups.google.com/forum/#!topic/kivy-users/2Hvarxhz6lU参照) 。kivy.core.windowからウィンドウをインポートすると、クラッシュする2番目のKivyウィンドウが開きます

ただし、インポートを実行すると、Kivyは空白で反応しない別のウィンドウを開こうとします。インポートステートメントを削除すると、アプリは通常どおり起動します。

誰でも正しい方向にウィンドウをインポートすると、この動作をしなくてもテクスチャのサポートが可能ですか?

おかげで、

オリバー。

答えて

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をして作成しtopleft
  • と表示領域のうちのどこかWindowを移動し、メインWindow
内のテクスチャを組み立てます
関連する問題