Каков наиболее правильный метод создания нескольких макетов в beeware?
В beeware примере учебника есть пример кода, чтобы показать один макет. Как создать несколько макетов и переключаться между ними.
class HelloWorld(toga.App):
def startup(self):
main_box = toga.Box(style=Pack(direction=COLUMN))
name_label = toga.Label(
'Your name: ',
style=Pack(padding=(0, 5))
)
self.name_input = toga.TextInput(style=Pack(flex=1))
name_box = toga.Box(style=Pack(direction=ROW, padding=5))
name_box.add(name_label)
name_box.add(self.name_input)
button = toga.Button(
'Say Hello!',
on_press=self.say_hello,
style=Pack(padding=5)
)
main_box.add(name_box)
main_box.add(button)
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
def say_hello(self, widget):
print("Hello", self.name_input.value)
Вот пример приложения. Если бы я хотел иметь два макета / экрана приложения, я бы поместил все объекты для обоих в автозагрузку. Как мне "удалить" все существующие элементы и создать новые, чтобы представить новый макет, элегантно в toga /beeware?
1 ответ
Чтобы удалить элемент из макета блока (скажем, вы хотите удалить "button" из "main_box",
main_box.remove(button)
Чтобы удалить все элементы, сделайте вышеуказанное для всех.