我目前正在尝试使用 Toga 创建一个带有 Beeware 的跨平台应用程序。我知道如何更新窗口中的内容(我只是清空框中的所有内容并向其中添加新内容)。但是现在我有一个问题,我想添加需要分配给变量的输入字段,以便我可以获得它们的值(而且我的第一个窗口的类已经非常大了......所以我不想要添加新的属性和方法呢)。所以我的意图是在我的其他类之外创建一个新类,它显示我的新窗口并关闭旧窗口(或只是替换我的旧窗口)
例如:
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class FirstWindow(toga.App):
def startup(self):
main_box = toga.Box(style=Pack(direction=COLUMN))
main_box.add(toga.Button('Open window 2', on_press=self.open_new_window))
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
def open_new_window(self, widget):
# This should close the current Window and display the other window
# return SecodnWindow() doesn't work
# close() and exit() doesn't work too, cause I can't execute code after this
# statements anymore
class SecondWindow(toga.App):
def startup(self):
main_box = toga.Box(style=Pack(direction=COLUMN))
#adding all the stuff to the window
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
# Other code
def main():
return FirstWindow()
谢谢^^