我想使用一个ListBox
并动态地向其中添加行。我希望有几种类型的行,每个行都有自己的组件和布局,并且在运行时,当我需要添加一行时,我想取其中一个行模板,从其中创建一个新的ListBoxRow
,填充需要填充数据的数据,并将其添加到ListBox
中。
我可以在代码中手动完成,但是我想使用Glade来设计这些行。问题是:
ListBoxRow
中添加ListBox
。ListBox
的一部分,而不是我可以克隆的外部行。谷歌搜索答案让我找到了things like this,它专注于TreeView
,并为它建立了一个模型,但我需要一个ListBox
,因为我需要自由定制的行。
我考虑将行节点提取到单独的XML中,每次使用新的构建器从新XML中重新创建一个新行并填充数据。这是可行的,但感觉烦躁和不能太穿孔-必须有一个更好的方法!
有什么正式的办法吗?
发布于 2019-09-05 17:35:44
你的问题其实是多方面的,就这样吧。
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文件中定期更新的小部件来说,这将不太好。
https://stackoverflow.com/questions/57810002
复制