我最近在 Clutter 中发现了约束,但是,我找不到有关如何按比例约束演员大小的信息。例如,我希望一个演员保持另一个演员的 1/2 宽度,比如说它是父级。似乎它只能强制宽度与源一起缩放 100%。
问问题
108 次
1 回答
0
Clutter.BindConstraint
匹配源actor的位置和/或维度属性。对于分数定位,您可以使用Clutter.AlignConstraint
,但没有Clutter.Constraint
允许您设置分数维属性的类。ClutterConstraint
您可以通过子类化Clutter.Constraint
和覆盖虚函数来实现自己的实现,该Clutter.Constraint.do_update_allocation()
虚函数通过约束应该修改的actor的分配。类似于此(未经测试)代码的东西应该可以工作:
class MyConstraint (Clutter.Constraint):
def __init__(self, source, width_fraction=1.0, height_fraction=1.0):
Clutter.Constraint.__init__(self)
self._source = source
self._widthf = width_fraction
self._heightf = height_fraction
def do_update_allocation(self, actor, allocation):
source_alloc = self._source.get_allocation()
width = source_alloc.get_width() * self._widthf
height = source_alloc.get_height() * self._heightf
allocation.x2 = allocation.x1 + width
allocation.y2 = allocation.y1 + height
这应该说明用于Clutter.Constraint
修改参与者分配的机制。
于 2013-09-29T09:46:34.283 回答