Как перемещаться между видами с поляны и пигобъекта? - PullRequest
0 голосов
/ 29 октября 2018

Я занимаюсь разработкой простых приложений с GTK glade и python, что мне нужно сделать, это перемещаться между некоторыми «представлениями», я объясняю, у меня есть «домашнее» представление, из которого я могу перейти к 2 различным представлениям, называемым «Информация» и «Данные», Я не могу найти способ сделать это. Мне нужно реализовать своего рода мобильную навигацию, поэтому, когда я нажимаю на информацию, все содержимое окна должно исчезнуть, и информация должна отображаться. К настоящему времени я могу обрабатывать нажатия на кнопки, но я понятия не имею, и я не могу найти учебники или документы о том, как сделать навигацию без вкладок или подобных вещей.

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

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

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Используйте GtkStack для управления вашим домом / информационным переходом.

0 голосов
/ 30 октября 2018

Я решил это, используя этот метод:

  • Создал на поляне 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()
    

Я не знаю, является ли это лучшим способом сделать это, но пока это работает.

В любом случае, если у вас есть другие идеи, способ справиться с этим или предложения, пожалуйста, ответьте!

[[EDIT]]

Этот метод работает, но он лучше работает с GtkStack, как предложено liberforce, что позволяет плавно переходить!

...