如何在林间空地和pygobject之间切换视图?

时间:2018-10-29 14:57:09

标签: python gtk gtk3 glade pygobject

我正在使用GTK Glade和python开发一个简单的应用程序, 我需要做的是在一些“视图”之间导航,我解释说,我有一个“家庭”视图,从中可以转到2个不同的视图,分别称为“信息”和“数据”, 我找不到办法。我需要实现一种移动导航,因此当我单击信息时,必须关闭窗口的所有内容,并且必须显示信息内容。 到目前为止,我可以处理按钮上的单击,但是我不知道,而且我找不到关于如何在没有标签或类似内容的情况下进行一些导航的教程或文档。

__________________________
|          HOME          |
||--------|     |-------||
||  Info  |     | Datas ||
||--------|     |-------||
|________________________| 

__________________________
|          INFO          |
||--------|              |
||  Back  |              |
||--------|              |
|________________________|   

2 个答案:

答案 0 :(得分:1)

使用GtkStack处理住所/信息转换。

答案 1 :(得分:0)

我用这种方法解决了:

  • 在林间空地上创建了一个GtkWindow(具有首页布局)和一个GtkBox(具有菜单布局),然后我将其存储到两个变量中,分别使用 menu_lay home_lay builder.get_object()功能

  • 编写了一个清除窗口的功能:

    def clear_window(self):
        for childn in self.window.get_children():
            self.window.remove(childn)
    
  • 单击菜单按钮后,我将清除窗口,添加菜单布局,然后在窗口小部件上调用 show_all()方法

    def clk_menu(self,event):
        self.clear_window()
        self.window.add(self.menu_lay)
        self.window.show_all()
    
  • 反之亦然,当单击后退按钮时,我会清除窗口并添加首页布局

    def clk_back(self,event):
        self.clear_window()
        self.window.add(self.home_l)
        self.window.show_all()
    

我不知道这是否是最好的方法,但目前效果很好。

无论如何,如果您有其他想法,处理方法或建议,请回答!

[[编辑]]

此方法有效,但如建议的那样与GtkStack一起使用效果更好 liberforce,可以平稳过渡!