我有一个Clutter警告我无法摆脱。
在我的项目中,我有一个自定义布局,由几个ClutterConstraint构建,它处理几个ClutterBox。
其中一个ClutterBox包含许多ClutterTexture,放置在手工布局中。
为了获得(手工布局),我使用g_signal_connect
来连接“分配更改”通知,并在他的回调中写下了所有放置逻辑。
运行时出现的警告是"Clutter-WARNING **: The actor 'ClutterBox' is currently inside an allocation cycle; calling clutter_actor_queue_relayout() is not recommended"
。
有人可以建议我如何避免这种警告吗?
答案 0 :(得分:1)
在通过分配更改的信号分配其父级期间,您无法更改子级的分配 - 即,您不能在分配()虚拟函数之外的父级分配期间更改子级的大小或位置。 / p>
如果要为容器实现布局管理策略,则必须对容器进行子类化并覆盖其allocate()虚函数;或者,您应该实现ClutterLayoutManager,并将其分配给actor。
ClutterBox在Clutter 1.10中也已被弃用:ClutterActor现在为实现布局管理策略所需的代表提供了完整的API和支持。