如何在 TornadoFx 中更改视图

How to change View in TornadoFx

我已经使用 TornadoFx 构建了一个应用程序。它在加载 'main' window 之前显示登录 window。

我的问题是如何显示这个主window。

当需要更改视图时,调用 replaceWith<MainWindow>() 将场景的根更改为 MainWindow 视图的根,可选择提供一种内置过渡效果。

如果您需要调整 window 的大小,请覆盖 MainView 中的 onDock 并调用 currentWindow?.sizeToScene().

另一种方法是简单地打开一个新的 window 并关闭当前的 window,使用 openWindow<MainView>() 然后调用 close().

感谢您的回答。它最终与 replaceWith(MainView::class) 一起工作并覆盖 onDock().

我发现在此上下文中有用的另一件事是 TornadoFX 中的 find(clazz::class) 函数,它可以获取 View 的节点,该节点当前通过引用其 class 名称显示.它在大多数地方都像这样使用以下命令将当前显示的内容从 CameraLiveView View 更改为 WelcomeScreen View。这有助于不必在应用程序中传递引用。

find(CameraLiveView::class).replaceWith(WelcomeScreen::class, sizeToScene = true, centerOnScreen = true)