2016-06-15 6 views
1

kivyの意味はinstanceですか?kivy "instance"には何がありますか? on_pressed(self、instance、pos)のように

class CustomBtn(Widget): 
    pressed = ListProperty([0, 0]) 

    def on_touch_down(self, touch): 
     if self.collide_point(*touch.pos): 
      self.pressed = touch.pos 
      # we consumed the touch. return False here to propagate 
      # the touch further to the children. 
      return True 
     return super(CustomBtn, self).on_touch_down(touch) 

    def on_pressed(self, instance, pos): 
     print ('pressed at {pos}'.format(pos=pos)) 
     print ('My callback is call from', instance) 

答えて

1

instanceは特別な意味を持ちません。この引数は、どのオブジェクトがイベントをトリガしたかをメソッドに伝えるために使用されます。別のクラスからのイベントにアタッチイベントハンドラを考えてみましょう:

class MyLabel(Label): 
    def pressed_handler(self, instance, pos): 
     print ('pressed at {pos}'.format(pos=pos)) 
     print ('My callback is call from', instance) 

a = CustomBtn() 
b = MyLabel() 
a.bind(on_pressed=b.pressed_handler) 

その後pressed_handlerinstance引数を通じて、イベントを送信したオブジェクトを知っているだろう。

1

'instance'は、ボタンを押したときのClass CustomBntのオブジェクトインスタンスへの名前と参照です。 「インスタンス」という名前にする必要はありません。あなたはそれを 'obj'または 'btn'とか、あなたにとって意味のあるものと呼ぶこともできます。

押したボタンに関する情報を収集するために使用します。 instance.textはボタン上のテキストになります。 print type(instance)を使用して、どのようなオブジェクト 'インスタンス'があるかを調べます。

関連する問題