gpt4 book ai didi

rust - 在 Rust 中子类化 gtk::Container 时处理子级

转载 作者:行者123 更新时间:2023-12-03 11:38:10 24 4
gpt4 key购买 nike

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

最佳答案

似乎当前稳定的 gtk-rs 版本不足以将自定义容器实现为 forallforeach需要但未在接口(interface)中定义。这将很快得到修复,并且已经在 gtk-rs git ( source ) 中。如果需要执行forall (foreach 也将依赖于相同的接口(interface))并且它在稳定版本中仍然不可用,只需使用 gtk-rs 的 git-repo 作为 Cargo.toml 中的依赖源即可.

关于rust - 在 Rust 中子类化 gtk::Container 时处理子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65887490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com