2015-11-19 153 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 

但有綁定的arent ......請幫我

+0

看起來你正在使用Github庫。您應該在該Github項目的問題部分發布此信息。作者和其他用戶可以更好地幫助你 –

+3

張貼在計算器上很好。 Kivy是一個擁有衆多用戶的流行圖書館,其中一些經常在這裏回答有關它的問題。 – inclement

回答

2

self.add_widget(MyPaintWidget)

這應該是self.add_widget(MyPaintWidget()) - 您需要一個實例的類,而不是類聲明本身。