编程语言
首页 > 编程语言> > python – 设计和更改GTK界面的最佳方法是什么?

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