python – 设计和更改GTK界面的最佳方法是什么?
作者:互联网
我正在使用GTK3和Glade设计一个python程序.它需要根据用户需要构建的内容来更改界面.
第一个界面是这样的:
____________________________________________________
| Label one | Text entry one | Save object button |
| Label two | Text entry two | |
____________________________________________________
它位于Gtk.Box()内的顶级窗口中,设置为垂直,Gtk.Grid()作为框一侧的标签和文本条目,以及框中部分的保存保存对象按钮. (我的界面实际上要复杂得多,因为表格中有更多标签,文本条目,切换按钮,组合框等).如果你想看到它,它是在http://sourceforge.net/projects/createlauncher.
如果用户需要构建另一个对象,它看起来像:
________________________________________________________
| Label three | Text entry three | Save object button |
| Label four | Text entry four | |
________________________________________________________
关于如何实施变更有哪些建议?
我已经想过跟踪标签一到二和进入二 – 二,隐藏它们并展示其他标签,但它与格式混乱.我已经搞砸了删除每个小部件并重建,如果需要切换回来.这是很多工作.由于我正在使用Glade,因此我很难创建一个单独的“区域”,因为我考虑删除Gtk.Box()并将其重新设置为其他接口需求,但使用Glade似乎令人望而却步.
我愿意接受任何和所有选择.
解决方法:
复合自定义小部件?
class ObjectOneSettings(Gtk.Grid):
def __init__(self):
Gtk.Grid.__init__(self)
self.label_one = Gtk.Label('Label One')
self.label_two = Gtk.Label('Label Two')
self.entry_one = Gtk.Entry()
self.entry_two = Gtk.Entry()
self.attach(self.label_one, 0, 0, 1, 1)
self.attach(self.label_two, 0, 1, 1, 1)
self.attach(self.entry_one, 1, 0, 1, 1)
self.attach(self.entry_two, 1, 1, 1, 1)
然后,您可以销毁ObjectOneSettings小部件,并在需要更改窗口时将其替换为ObjectTwoSettings小部件.
标签:python,user-interface,gtk,glade,gtk3 来源: https://codeday.me/bug/20190630/1333994.html