Kivy Scatter图像 - 边框 - 无类型

时间:2015-05-09 23:13:58

标签: python kivy

我在使用Scatter(FloatView)的边界框功能时遇到了一些问题。我的构建代码是;

MapPopup = Popup(title='Map')
def openMap(self):
    box = BoxLayout(orientation='vertical')
    stack = StackLayout(orientation='tb-lr', padding=0, spacing=1)
    grid = GridLayout(orientation='vertical', cols=1)
    button = Button(markup=True,bold=True,text='B\nA\nC\nK',width=40,size_hint_x=None)
    button.bind(on_press=partial(self.backButton))
    stack.add_widget(button)
    source = os.path.join(os.getcwd(), 'Games', str(CURRENT_GAME[0]), 'map.png')
    if os.path.isfile(source):
        img = PILImage.open(source)
        width, height = img.size
        scatter = Scatter(size_hint=(None, None), size=(width,height), auto_bring_to_front=False, bbox=((10,10),(10,10)))
        image = Image(source=source, size=(width,height))
        scatter.add_widget(image)
        grid.add_widget(scatter)
    else:
        label = Label(text="Please Start/Load a Game")
        grid.add_widget(label)
    stack.add_widget(grid)
    box.add_widget(stack)
    Container.MapPopup.content = box
    Container.MapPopup.open()

我在bbox=((?,?),(?,?))放入的值无关紧要我收到了错误;

TypeError: 'NoneType' object is not callable

删除bbox并且一切正常,但我正在容纳的图像溢出弹出框。我不想使用scale=调整图片大小。

来自文档:

bbox Added in 1.0.0
Bounding box of the widget in parent space:
 ((x, y), (w, h))

认为我的问题是它是scatter.scatter.bbox而不是scatter.bbox,因为ScatterLayout实现了FloatLayout,Scatter实现了ScatterLayout,或类似的东西 - 任何人都可以帮助?

非常感谢!

完全追溯;

Traceback (most recent call last):
 File "main.py", line 1069, in <module>
   TextGameTopiaApp().run()
 File "/usr/lib/python2.7/dist-packages/kivy/app.py", line 792, in run
   runTouchApp()
 File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 481, in runTouchApp
   EventLoop.window.mainloop()
 File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_pygame.py", line 381, in mainloop
   self._mainloop()
 File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_pygame.py", line 287, in _mainloop
   EventLoop.idle()
 File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 324, in idle
   self.dispatch_input()
 File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 309, in dispatch_input
   post_dispatch_input(*pop(0))
 File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 275, in post_dispatch_input
   wid.dispatch('on_touch_up', me)
 File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:4550)
 File "/usr/lib/python2.7/dist-packages/kivy/uix/behaviors.py", line 110, in on_touch_up
   self.dispatch('on_release')
 File "_event.pyx", line 312, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:4504)
 File "/usr/lib/python2.7/dist-packages/kivy/lang.py", line 1299, in custom_callback
   exec(__kvlang__.co_value, idmap)
 File "./textgametopia.kv", line 258, in <module>
   on_release: root.openMap()
 File "main.py", line 311, in openMap
   scatter = Scatter(size_hint=(None, None), size=(width,height), auto_bring_to_front=False, bbox=((10,10),(10,10)))
 File "/usr/lib/python2.7/dist-packages/kivy/uix/scatter.py", line 363, in __init__
   super(Scatter, self).__init__(**kwargs)
 File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 163, in __init__
   super(Widget, self).__init__(**kwargs)
 File "_event.pyx", line 156, in kivy._event.EventDispatcher.__init__ (kivy/_event.c:3184)
 File "properties.pyx", line 345, in kivy.properties.Property.__set__ (kivy/properties.c:3589)
 File "properties.pyx", line 1219, in kivy.properties.AliasProperty.set (kivy/properties.c:19329)
TypeError: 'NoneType' object is not callable

0 个答案:

没有答案
相关问题