<tfoot id='hnyqU'></tfoot>
        <i id='hnyqU'><tr id='hnyqU'><dt id='hnyqU'><q id='hnyqU'><span id='hnyqU'><b id='hnyqU'><form id='hnyqU'><ins id='hnyqU'></ins><ul id='hnyqU'></ul><sub id='hnyqU'></sub></form><legend id='hnyqU'></legend><bdo id='hnyqU'><pre id='hnyqU'><center id='hnyqU'></center></pre></bdo></b><th id='hnyqU'></th></span></q></dt></tr></i><div id='hnyqU'><tfoot id='hnyqU'></tfoot><dl id='hnyqU'><fieldset id='hnyqU'></fieldset></dl></div>
        <legend id='hnyqU'><style id='hnyqU'><dir id='hnyqU'><q id='hnyqU'></q></dir></style></legend>

        <small id='hnyqU'></small><noframes id='hnyqU'>

          <bdo id='hnyqU'></bdo><ul id='hnyqU'></ul>

      1. ObjectProperty 类的使用

        时间:2023-10-10
          <i id='2APzy'><tr id='2APzy'><dt id='2APzy'><q id='2APzy'><span id='2APzy'><b id='2APzy'><form id='2APzy'><ins id='2APzy'></ins><ul id='2APzy'></ul><sub id='2APzy'></sub></form><legend id='2APzy'></legend><bdo id='2APzy'><pre id='2APzy'><center id='2APzy'></center></pre></bdo></b><th id='2APzy'></th></span></q></dt></tr></i><div id='2APzy'><tfoot id='2APzy'></tfoot><dl id='2APzy'><fieldset id='2APzy'></fieldset></dl></div>

          1. <tfoot id='2APzy'></tfoot>
              <tbody id='2APzy'></tbody>

              <legend id='2APzy'><style id='2APzy'><dir id='2APzy'><q id='2APzy'></q></dir></style></legend>
            • <small id='2APzy'></small><noframes id='2APzy'>

                <bdo id='2APzy'></bdo><ul id='2APzy'></ul>

                  本文介绍了ObjectProperty 类的使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我刚开始学习 kivy,我对 ObjectProperty 类的用法以及它如何将 None 作为参数感到非常困惑.有人可以解释一下吗?我在 kivy 教程中找到的:

                  I Just started to learn kivy and I am very confused on the usage of the ObjectProperty class, and how it takes None as an argument. Could somebody explain it please? I found it in the kivy tutorial:

                  class PongGame(Widget):
                      ball = ObjectProperty(None)
                  
                      def update(self, dt):
                          self.ball.move()
                  
                          # bounce off top and bottom
                          if (self.ball.y < 0) or (self.ball.top > self.height):
                              self.ball.velocity_y *= -1
                  
                          # bounce off left and right
                          if (self.ball.x < 0) or (self.ball.right > self.width):
                              self.ball.velocity_x *= -1
                  

                  推荐答案

                  Kivy Property 是一个类似于 Python 自己的 property 的便利类,但也提供类型检查,验证和事件.ObjectPropertyProperty 类的一个特殊子类,因此它具有与它相同的初始化参数:

                  The Kivy Property is a convenience class similar to Python's own property but that also provides type checking, validation and events. ObjectProperty is a specialised sub-class of the Property class, so it has the same initialisation parameters as it:

                  默认情况下,属性始终采用默认值[.] 默认值value 必须是与 Property 类型一致的值.例如,您不能将列表设置为 StringProperty,因为 StringProperty将检查默认值.

                  By default, a Property always takes a default value[.] The default value must be a value that agrees with the Property type. For example, you can’t set a list to a StringProperty, because the StringProperty will check the default value.

                  None 是一种特殊情况:您可以将 Property 的默认值设置为无,但您不能在之后将 None 设置为属性.如果你真的想要这样做,您必须使用 allownone=True[.]

                  None is a special case: you can set the default value of a Property to None, but you can’t set None to a property afterward. If you really want to do that, you must declare the Property with allownone=True[.]

                  (来自 Kivy 属性文档)

                  (from the Kivy Property documentation)

                  在您的代码中,PongGame 有一个 ball 属性,该属性最初设置为 None,稍后将被分配一个球对象.这是在 kv 文件中定义的:

                  In your code, PongGame has a ball property that is initially set to None and will later be assigned a ball object. This is defined in the kv file:

                  <PongGame>:
                      ball: pong_ball
                  
                      PongBall:
                          id: pong_ball
                          center: self.parent.center
                  

                  因为没有对象被传递给初始化器,所以 任何 对象都可以分配给该属性.您可以通过使用虚拟值对其进行初始化来将其限制为仅容纳球对象:

                  Because no object was passed to the initialiser, any object can be assigned to that property. You could restrict it to only hold ball objects by initialising it with a dummy value:

                  ball = ObjectProperty(PongBall())
                  

                  这篇关于ObjectProperty 类的使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:运行代码时更新 kivy 小部件的属性 下一篇:如何在 Kivy 中隐藏 ActionButton?

                  相关文章

                  最新文章

                1. <i id='AdWeq'><tr id='AdWeq'><dt id='AdWeq'><q id='AdWeq'><span id='AdWeq'><b id='AdWeq'><form id='AdWeq'><ins id='AdWeq'></ins><ul id='AdWeq'></ul><sub id='AdWeq'></sub></form><legend id='AdWeq'></legend><bdo id='AdWeq'><pre id='AdWeq'><center id='AdWeq'></center></pre></bdo></b><th id='AdWeq'></th></span></q></dt></tr></i><div id='AdWeq'><tfoot id='AdWeq'></tfoot><dl id='AdWeq'><fieldset id='AdWeq'></fieldset></dl></div>
                  • <bdo id='AdWeq'></bdo><ul id='AdWeq'></ul>

                    <small id='AdWeq'></small><noframes id='AdWeq'>

                      <tfoot id='AdWeq'></tfoot>
                    1. <legend id='AdWeq'><style id='AdWeq'><dir id='AdWeq'><q id='AdWeq'></q></dir></style></legend>