【问题标题】:How to navigate between views with glade and pygobject?如何使用 glade 和 pygobject 在视图之间导航?
【发布时间】:2018-10-29 14:57:08
【问题描述】:

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

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

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

【问题讨论】:

  • 您使用的是 GTK+ 2 还是 GTK+ 3?
  • 我正在使用 GTK3+
  • 那么你不是在使用 pytgtk(对于 GTK+ 2),你是在使用 pygobject。

标签: python gtk gtk3 glade pygobject


【解决方案1】:

使用GtkStack 处理您的家庭/信息转换。

【讨论】:

    【解决方案2】:

    我用这个方法解决了:

    • 在 Glade 上创建了一个 GtkWindow(带有主页布局)和一个带有菜单布局的 GtkBox,然后我使用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,可以平滑过渡!

    【讨论】:

    • 使用@liberforce 推荐的GtkStack,你会发现它好多了。
    • 好的,我试试看!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多