- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我刚开始学习kivy,我对ObjectProperty类的用法以及它如何将None作为参数感到非常困惑。有人可以解释一下吗?我在kivy教程中找到了它:
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
的便利类,但它还提供类型检查、验证和事件。 ObjectProperty
是 Property
类的特殊子类,因此它具有与其相同的初始化参数:
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 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[.]
(来自基维Property documentation
)
在您的代码中,PongGame
有一个 ball
属性,该属性最初设置为 None
,稍后将分配一个 ball 对象。这是在 kv 文件中定义的:
<PongGame>:
ball: pong_ball
PongBall:
id: pong_ball
center: self.parent.center
因为没有对象被传递给初始化器,任何对象都可以分配给该属性。您可以通过使用虚拟值对其进行初始化来将其限制为仅容纳球对象:
ball = ObjectProperty(PongBall())
关于python - ObjectProperty 类的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18580794/
我有一个带有 NumberSpinner 的场景元素和 ComboBox元素,我想绑定(bind) minValue NumberSpinner的属性(property)valueProperty 为
我要绑定(bind) dp_date_add.valueProperty().bindBi Direction(model.forDateProperty()); 其中 forDateProperty
我有一个名为Tree的类 public class Tree { private Color c; public Color getColor() { retu
假设我有三个类: class A { val bProperty: ObjectProperty = SimpleObjectProperty(B(C("test"))) val cO
我的应用程序有一个包含多个 ObjectProperty 的对象字段。我正在尝试编写一个执行以下操作的辅助方法: 接受任何类型的 ObjectProperty作为参数 显示ChoiceDialog弹出
我的应用程序有一个包含多个 ObjectProperty 的对象字段。我正在尝试编写一个执行以下操作的辅助方法: 接受任何类型的 ObjectProperty作为参数 显示ChoiceDialog弹出
我刚开始学习kivy,我对ObjectProperty类的用法以及它如何将None作为参数感到非常困惑。有人可以解释一下吗?我在kivy教程中找到了它: class PongGame(Widget):
我正在创建一个 kivy 用户界面来显示由我编写为标准 python 对象的数据模型生成的值。本质上,我希望用户能够按下一个按钮,这将更改底层数据模型,并且此更改的结果将自动更新和显示。据我了解,这可
我正在使用 ScalaFX GUI 和 Akka 远程处理网络制作多人游戏客户端。当我的客户端收到游戏数据时,它会将其存储在 Model.gameData 中。我需要我的 GUI 来响应这个变量变化。
我正在使用 OWL API 和 Java (Eclipse) 开发一种算法。对于我的 ASSOCIATION 案例,我需要创建一个公理,其中 AGGREGATION 和 COMPOSITION 作为
我想了解 ObjectProperty 的工作原理,但仍然没有成功。我有以下 POJO: public class Article{ private LocalDateTime dateTim
我有一个包装 ObservableList 的属性。但我不知道如何初始化它。目前我正在这样做 ObjectProperty> property = new ChoiceBox().itemsPrope
我有这个人物 TableView :
我扩展了 SimpleObjectProperty创建自定义延迟加载实现(see here),LazyLoadingObjectProperty . 要将此通用实现用于 boolean 属性,我使用
在 W3 OWL 规范中,个体的属性分为两组:数据类型属性和对象属性。定义了对象属性(正如我发现的一篇文章所说的那样): "Object properties (owl:ObjectProperty)
ObjectPropertyBase 在 newValue == oldValue 时跳过值失效: /** * {@inheritDoc} */ @Override public void set
在RDF中,语句用S、P和O表示;在 OWL 中,owl:ObjectProperty 表示谓词逻辑。 (S) (P) (O) I like dog
我正在尝试创建一条指向属性中节点的线: ObjectProperty pointedToNode = new SimpleObjectProperty(); 我想要一条线像这样指向它: line.en
我正在尝试加载 ontology在 Protégé 中,但未按预期进行处理。最有问题的是所有对象和数据属性都显示为注释,而不是数据属性和对象属性。 我有一个对象属性kingdom: king
我研究了一些类及其声明,发现了一种新的封装方式,它使得访问实例变量的普通 getter/setter 方式看起来像野蛮行为...... 内部javafx.scene.Scene搜索相机,javafx.
我是一名优秀的程序员,十分优秀!