gpt4 book ai didi

rust - 我们如何将 Rust 字符串转换为 gtk::type::String?

转载 作者:行者123 更新时间:2023-11-29 08:18:52 25 4
gpt4 key购买 nike

我正在尝试创建一个 ComboBox,尤其是它的模型:

let type_in_col = &[gtk::Type::String];
let list_model = ListStore::new(type_in_col);
list_model.insert_with_values(None, &[0], &[""]);
list_model.insert_with_values(None, &[0], &["h"]);
list_model.insert_with_values(None, &[0], &["H"]);
list_model.insert_with_values(None, &[0], &["W"]);
list_model.insert_with_values(None, &[0], &["S"]);

这段代码给了我这个错误:

error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
--> src\widgets\daywidget.rs:36:1
|
36 | #[widget]
| ^^^^^^^^^ `str` does not have a constant size known at compile-time
|
= help: the trait `std::marker::Sized` is not implemented for `str`
= note: required for the cast to the object type `gtk::ToValue`

(错误不是很精确,因为我使用的是Relm)

最佳答案

您想改用以下内容:

let type_in_col = &[gtk::Type::String];
let list_model = ListStore::new(type_in_col);
list_model.insert_with_values(None, &[0], &[&""]);
list_model.insert_with_values(None, &[0], &[&"h"]);
list_model.insert_with_values(None, &[0], &[&"H"]);
list_model.insert_with_values(None, &[0], &[&"W"]);
list_model.insert_with_values(None, &[0], &[&"S"]);

因为 SetValue 是为 &T where T: ?Sized 实现的。

您不能从 &str 转换为 &ToValue:参见 here原因。

关于rust - 我们如何将 Rust 字符串转换为 gtk::type::String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44249803/

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