2017-04-16 28 views
0

私はthisの質問を見ましたが、それは違ったものでした。kivy:BoxLayoutに画像を配置する方法は?

私はちょうどkivyを始めていますので、私はそれは本当に簡単なものだと思います。私はBoxLayoutに2枚の画像を配置したい

\。ここに私のコードは、これまでです:

import kivy 
kivy.require('1.9.1') 

from kivy.app import App 
from kivy.core.image import Image as CoreImage 
from kivy.uix.boxlayout import BoxLayout 

class TestApp(App): 

    def build(self): 
     layout = BoxLayout(orientation='horizontal') 

     im1 = CoreImage("image1.png") 
     im2 = CoreImage("image2.png") 

     layout.add_widget(im1) # this is line 33 
     layout.add_widget(im2) 

     return layout 

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

プログラムは、ウィンドウを表示しますが、端末に、このエラーメッセージを出力しません:

Traceback (most recent call last): 
    File "./myprog.py", line 39, in <module> 
    TestApp().run() 
    File "/usr/lib/python3.6/site-packages/kivy/app.py", line 802, in run 
    root = self.build() 
    File "./myprog.py", line 33, in build 
    layout.add_widget(im1) 
    File "/usr/lib/python3.6/site-packages/kivy/uix/boxlayout.py", line 212, in add_widget 
    pos_hint=self._trigger_layout) 
    File "kivy/_event.pyx", line 438, in kivy._event.EventDispatcher.bind (kivy/_event.c:6473) 
KeyError: 'pos_hint' 

イメージが存在します。 CoreImage "コンストラクタ"にpos_hint={'x':0,'y':0}を追加すると、同じエラーが発生します。私は、Python 3.6.0と1.9.1 kivy

答えて

1

コア・イメージを使用しています

はウィジェットではありません。代わりにkivy.uix.imageを使用してください。
kivy.core.imageから:画像をロードし、テクスチャに変換するための

コアクラス。生画像データは、さらなるアクセスのためにメモリ内に保持することができる。だからあなたの例の作品を作るために

from kivy.app import App 
from kivy.uix.image import Image 
from kivy.uix.boxlayout import BoxLayout 

class TestApp(App): 

    def build(self): 
     layout = BoxLayout(orientation='horizontal') 

     im1 = Image(source="image1.png") 
     im2 = Image(source="image2.png") 

     layout.add_widget(im1) 
     layout.add_widget(im2) 

     return layout 

if __name__ == '__main__': 
    TestApp().run() 
関連する問題