如何关闭winit启动的窗口,而不退出程序/进程



我正在Rust中使用winit板条箱创建一个新窗口。我的程序最初创建一个CLI,GUI窗口是根据用户在CLI中的可选输入创建的。如何在不退出进程并完全关闭程序的情况下关闭新创建的窗口。

我看到的文档和示例都使用ControlFlow::Exit来处理CloseRequested事件,但它会从整个程序中退出;我只想关闭创建的窗口,然后继续在CLI中运行其余的代码。如果有一个操作系统特定的命令,我的目标是windows操作系统。

要关闭窗口,只需放下Window对象。

但是,我怀疑您可能也希望退出事件循环这在所有平台上都是不可能的,这就是为什么你不经常看到关于它的文档。要运行事件循环并有机会退出它,请使用winit::platform::run_return::EventLoopExtRunReturn::run_return(),这是一个仅在那些可以支持从事件循环返回的平台(包括Windows(上实现的特性。在该run_return()中,从事件处理程序使用ControlFlow::Exit将把控制权返回给调用函数,而不是退出进程。

您也可以执行以下操作之一,而不是使用run_return():

  • 构建程序结构,使其在关闭窗口后使用CLI界面在winit事件循环中继续运行
  • 在其他线程上运行CLI交互

相关内容

  • 没有找到相关文章

最新更新