我已经使用 TornadoFx 构建了一个应用程序。它在加载“主”窗口之前显示一个登录窗口。
我的问题是如何显示这个主窗口。
当需要更改视图时,调用replaceWith<MainWindow>()
以将场景的根更改为MainWindow
视图的根,可选择提供一种内置的过渡效果。
如果您需要调整窗口大小,请覆盖onDock
并MainView
调用currentWindow?.sizeToScene()
.
另一种方法是简单地打开一个新窗口并关闭当前窗口,使用openWindow<MainView>()
然后调用close()
.
我发现在这种情况下有用的另一件事是find(clazz::class)
TornadoFX 中的函数,它可以View
通过引用其类名来获取当前正在显示的 a 的节点。它在大多数地方都是这样工作的,使用以下命令将当前显示的内容从CameraLiveView
View更改为WelcomeScreen
View。这有助于不必在应用程序中传递引用。
find(CameraLiveView::class).replaceWith(WelcomeScreen::class, sizeToScene = true, centerOnScreen = true)
感谢您的回答。replaceWith(MainView::class)
它终于与onDock()
.