2015-11-19 2 views
0

им новое в kivy, я пытаюсь атаковать виджет макет флоат, я должен использовать код из примера:Добавить виджет в макет флоат Kivy

http://kivy.org/docs/guide/firstwidget.html

from random import random 
from kivy.app import App 
from kivy.uix.widget import Widget 
from kivy.graphics import Color, Ellipse, Line 
from kivy.uix.floatlayout import FloatLayout 


class MyPaintWidget(Widget): 

     def on_touch_down(self, touch): 
     color = (random(), random(), random()) 

     with self.canvas: 
      Color(*color) 
      d = 15. 

      Ellipse(pos=(touch.x - d/2, touch.y - d/2), size=(d, d)) 
      touch.ud['line'] = Line(points=(touch.x, touch.y)) 

    def on_touch_move(self, touch): 
     touch.ud['line'].points += [touch.x, touch.y] 

class KivyDotsLayout(FloatLayout): 

    def __init__(self): 
     super(KivyDotsLayout, self).__init__() 
     self.add_widget(MyPaintWidget) 



class MyPaintApp(App): 

def build(self): 
    return KivyDotsLayout() 


if __name__ == '__main__': 
    MyPaintApp().run()<code> 

, но затем он дает мне эту ошибку:

Traceback (most recent call last): 
    File "/Users/Painkiller/PycharmProjects/Prova/Game/DotsGAme/example.py", line 40, in <module> 
    MyPaintApp().run() 
    File "/Applications/Kivy.app/Contents/Resources/venv/lib/python2.7/site-packages/kivy/app.py", line 798, in run 
    root = self.build() 
    File "/Users/Painkiller/PycharmProjects/Prova/Game/DotsGAme/example.py", line 36, in build 
    return KivyDotsLayout() 
    File "/Users/Painkiller/PycharmProjects/Prova/Game/DotsGAme/example.py", line 29, in __init__ 
    self.add_widget(MyPaintWidget) 
    File "/Applications/Kivy.app/Contents/Resources/venv/lib/python2.7/site-packages/kivy/uix/floatlayout.py", line 115, in add_widget 
    pos_hint=self._trigger_layout) 

TypeError: descriptor 'bind' of 'kivy._event.EventDispatcher' object needs an argument 

но Арент привязывать ... пожалуйста, помогите мне

+0

Похоже, вы используете библиотеку Github. Вы должны опубликовать это в разделе «Проблемы» этого проекта Github. Автор и другие пользователи могут помочь вам лучше –

+3

Публикация на stackoverflow в порядке. Kivy - популярная библиотека со многими пользователями, некоторые из которых регулярно отвечают на вопросы об этом здесь. – inclement

ответ

2

self.add_widget(MyPaintWidget)

Это должно быть self.add_widget(MyPaintWidget()) - вам нужен пример класса, а не сама декларация класса.

Смежные вопросы