我看了this个问题,但那是不同的。
我刚刚开始使用kivy,所以我想这很简单:\
我想将两张图片放入BoxLayout。到目前为止,这是我的代码:
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'
图像存在。如果我将pos_hint={'x':0,'y':0}
添加到CoreImage“构造函数”,我会得到相同的错误。
我正在使用python 3.6.0和kivy 1.9.1
答案 0 :(得分: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()