我正在编写一个简单的应用程序,并使用glade(gtk)作为UI。我需要很多窗口(~10),其中一个会打开,具体取决于命令行标志,其他上下文等等。
现在,所有这些窗口都非常相似,它们有3个顶级标签,最后一个标签相同,都有OK
和Quit
按钮等,所以我是寻找在林间空地建造这些窗户的方法。我可以复制粘贴一个窗口并进行更改,但我正在寻找一种更好的方法,这将允许我重用窗口的公共部分。
另外,我正在使用pygtk来加载窗口。
答案 0 :(得分:1)
使用您提到的常见方面设计小部件。无论您需要实现哪些不同的东西,请使用适当的名称添加GtkAlignment。不要忘记更改GtkAlignment的对齐和填充值。
在PyGTK中,您可以gtk.Builder.get_object(name)访问这些空白区域并在其中添加额外组件(也可以使用Glade设计)。
答案 1 :(得分:0)
好的,在detly的回答的帮助下,我能够得到一些有用的东西。对于任何需要它的人来说,这就是我所做的。
main.glade包含窗口以及我需要在所有窗口中显示的所有常见内容。 comp.glade包含一个窗口,带有我需要的额外内容的vbox组件,我们称之为'top_comp'。
现在,在main.glade中,我将gtk.Alignment组件放在需要加载额外组件的位置,并调用它,比如'comp_holder'。有了我的建设者,我做了
builder = gtk.Builder()
builder.add_from_file('main.glade'))
builder.add_from_file('comp.glade'))
builder.get_object('top_comp').reparent(builder.get_object('comp_holder'))
此方法目前似乎有效,但我不知道这是否是正确的做法。
对上述欢迎的任何建议。