我试图用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
生存期要求E0759...在此处捕获...注意:...并且需要在这里生存'static
”我不完全理解,但似乎与我尝试的第一件事有关(project_root是字符串)。
现在我的问题是:我该如何存储这样的变量,以便从整个项目中访问它?是否有我不知道的GTK内部方法?
1条答案
按热度按时间yi0zb3m41#
我不知道为什么把变量存储到文件中会很慢很愚蠢。据我所知,这是标准的,你通常每分钟访问一次文件。如果你指的是线程或函数之间的通信,你绝对应该重新设计应用程序。使用mpsc。