首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Glade来准备可以在运行时以编程方式创建和填充的ListBoxRow模板?

如何使用Glade来准备可以在运行时以编程方式创建和填充的ListBoxRow模板?
EN

Stack Overflow用户
提问于 2019-09-05 16:58:15
回答 1查看 614关注 0票数 3

我想使用一个ListBox并动态地向其中添加行。我希望有几种类型的行,每个行都有自己的组件和布局,并且在运行时,当我需要添加一行时,我想取其中一个行模板,从其中创建一个新的ListBoxRow,填充需要填充数据的数据,并将其添加到ListBox中。

我可以在代码中手动完成,但是我想使用Glade来设计这些行。问题是:

  1. Glade只允许我在一个ListBoxRow中添加ListBox
  2. 这些行将是ListBox的一部分,而不是我可以克隆的外部行。
  3. 我没有看到用于“克隆”小部件层次结构的GTK函数,因此我不能将这些行作为实际的小部件,然后再克隆它们。

谷歌搜索答案让我找到了things like this,它专注于TreeView,并为它建立了一个模型,但我需要一个ListBox,因为我需要自由定制的行。

我考虑将行节点提取到单独的XML中,每次使用新的构建器从新XML中重新创建一个新行并填充数据。这是可行的,但感觉烦躁和不能太穿孔-必须有一个更好的方法!

有什么正式的办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-06 01:35:44

你的问题其实是多方面的,就这样吧。

  1. 可以在ListBoxRow之外添加一行Listbox,然后将其拖放到ListBox之外。通过这种方式,您可以使用如下方法将行(稍后显示)添加到Listbox中: listbox = self.builder.get_object("listbox") row = self.builder.get_object("row") listbox.insert(row, 0)

2.不可能克隆或复制Glade小部件。有关更多细节,请参见此post

3.如果小部件和ListBoxRow恰好是静态的,您可能需要考虑在代码中生成它们。对于在Glade文件中定期更新的小部件来说,这将不太好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57810002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档