gpt4 book ai didi

c++ - 将 Gtk::Grid 重复添加到 Gtk::Box

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:39 25 4
gpt4 key购买 nike

我有一个仅包含网格的 Window 对象。我想使用 Gtk::Builder 获取指向网格的指针,然后使用一些 Gtk::Box 的 Gtk::Box->pack_end() 将网格多次添加到其中(每次都包含操作的内容)。

尽管每次调用 pack_end() 时我都会得到:

gtk_box_pack:在我的终端中断言“gtk_widget_get_parent (child) == NULL”失败,并且没有任何内容添加到框中。

我应该做什么?

谢谢

* 编辑:目标:我希望将数据库表的条目放入每个记录的精美小部件中,尽管所有记录都一个接一个地垂直显示。我想我可以在 Glade 中创建一个精美的小部件作为窗口,并使用 Gtk::Builder 来获取指向它的指针。因此,在幻想的 Glade 文件中,我有一个包含网格的窗口,该网格具有我的自定义外观。当我尝试添加指向精美*grid*的指针,可见窗口的Box时,出现上述错误。我希望我说得清楚。

最佳答案

这是 gtk_box_pack: assertion 'gtk_widget_get_parent (child) == NULL' failed 的解决方案:

首先需要做的是,您应该在没有窗口的情况下绘制小部件,因此当加载构建器时,它不会有父级,因此断言会成功。

但还有一点:当我将网格的第一个实例添加到框中时,第二个实例再次导致相同的错误。经过几次试验和错误后,我意识到在每次交互中你应该使用 Gtk::Builder::create_from_file()创建一个新的无父网格实例以供使用,这样就可以工作了。

如果记录数量很大,性能一定会有很大差异,但 Gtk::Widget 的复制构造函数是私有(private)的,直接复制是不可能的,而且由于这不是我的主要痴迷,所以我没有坚持解决这个“性能”问题。

关于c++ - 将 Gtk::Grid 重复添加到 Gtk::Box,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850611/

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