【问题标题】:how to share information globally in gtk-rs Application如何在 gtk-rs 应用程序中全局共享信息
【发布时间】:2023-02-17 10:52:46
【问题描述】:

我正在尝试使用 gtk-rs 在 Rust 中构建一个应用程序。当用户创建一个新项目时,需要以某种方式存储项目根目录的路径,以便所有应用程序都可以访问它。 我试图解决的事情:

  • 创建可变静态字符串(不安全,因此可能不是可行的解决方案)
  • 将变量存储到一个文件中,该文件由于显而易见的原因而缓慢且愚蠢。虽然有效...
  • 按照This 帖子中的建议使用lazy_static!。但它也表示这通常不是首选方式。所以我尝试了下一件事。
  • 创建一个mut project_root: &mut String 并将其传递给任何需要它的函数。现在的问题是,当我需要调用 new_proj_menu_item.connect_activate(move |_| new_project_listener::add_listener(&file_tree_view, project_root)); 为菜单项设置侦听器时,编译器告诉我:“project_root 具有匿名生命周期 '_ 但它需要满足 'static lifetime requirement E0759 ... is captured here... 注意:...并且需要在此处与 'static 一样长“我不完全理解,但似乎与我尝试的第一件事有关(project_root 是字符串)。

现在我的问题是:我将如何存储这样的变量,以便整个项目都可以访问它?是否有我不知道的 GTK 内部方式?

【问题讨论】:

    标签: rust gtk-rs


    【解决方案1】:

    我不知道为什么将变量存储到文件中既缓慢又愚蠢。据我所知,这是标准,您通常每分钟访问该文件的次数少于一次。如果您指的是线程或函数之间的通信,您绝对应该重新设计应用程序。使用 mpsc。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 2020-02-07
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多