gpt4 book ai didi

rust - 如何在不退出程序/进程的情况下关闭由 winit 启动的窗口?

转载 作者:行者123 更新时间:2023-12-05 05:32:15 31 4
gpt4 key购买 nike

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

我看到的文档和例子都使用ControlFlow::Exit来处理CloseRequested事件,但是它从整个程序中退出;我只想关闭创建的窗口并继续运行 CLI 中的其余代码。如果有特定于操作系统的命令,我将针对 Windows 操作系统。

最佳答案

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

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

你也可以做这些事情之一而不是使用 run_return():

  • 构造您的程序,使其在关闭窗口后在 winit 事件循环中使用 CLI 界面继续运行。
  • 在不同的线程上运行 CLI 交互。

关于rust - 如何在不退出程序/进程的情况下关闭由 winit 启动的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74175743/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com