我正在尝试使用 gtk 的 Rust 绑定创建一个包含多个孩子的自定义 gtk 容器。gtk::Container
我从和派生我的自定义类gtk::Widget
。问题如下:
gtk::subclass::container::ContainerImpl
(文档)仅提供了几种实现方法。这些方法包括使容器能够处理孩子所需的add
和方法。remove
我的子类使用它自己的由该add
方法填充的小部件向量。自定义大小协商和分配已实施并按预期工作。在大多数情况下,我都遵循本教程(针对纯 C 语言)。但是该get_children
方法不起作用,它返回一个空向量。这是预期的,因为该方法使用forall
和foreach
不知道我的自定义小部件存储的方法。但这些方法是gtk::ContainerExt
因此我的子类无法定义(至少没有手动实现所有相关方法)。我遵循的教程覆盖了这些方法。
我不知道如何继续,因为感觉孩子没有正确注册可能会导致以后的内存泄漏,并且它会使某些方法变得get_children
无用。gtk-rs 有处理孩子的特殊功能吗?我在这个方向上找不到任何文档。但是必须有一种可能性,因为在不能处理子类的情况下对容器进行子类化几乎是无用的。