作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为 GTK 实现模糊搜索 EntryCompletion
功能通过 set_match_func
.文档非常有限。
请注意,代码使用默认的 EntryCompletion
。
函数应该是这样的:
fn custom_entry_completion(store: >k::EntryCompletion, text: &str, ti: >k::TreeIter) -> bool {
println!("{} // {:?}", text, ti);
true
}
我想把它嵌入到这样的东西中:
let completion_countries = gtk::EntryCompletion::new();
completion_countries.set_match_func(custom_entry_completion);
我想要一个模糊匹配,但我想我会自己处理这部分。最有帮助的是匹配不区分大小写或匹配字符串的最后部分(或其他内容)的示例。我正在寻找一个好的示例(最好没有不安全的)和/或好的文档。
所以我需要从 TreeIter 中获取值并检查匹配是否如我所愿。因此,我的问题是如何从 TreeIter 中获取要与 text
进行比较的项目。
最佳答案
EntryCompletionExt::get_text_column
EntryCompletionExt::get_model
TreeModelExt::get_value
glib::value
fn custom_entry_completion(store: >k::EntryCompletion, text: &str, ti: >k::TreeIter) -> bool {
let tree_model = store.get_model().unwrap();
let text_column = store.get_text_column();
let ti_text_value = tree_model.get_value(ti, text_column);
if ti_text_value.is::<String>() {
let value = ti_text_value.get::<String>().unwrap();
println!("{:?} // {:?}", text, value);
} else {
println!("{:?} // not a string", text);
}
true
}
与 entry_completion.rs 一起使用时的控制台输出示例:
"adfs" // "France"
"adfs" // "Italy"
"adfs" // "Italy"
"adfs" // "Sweden"
"adfs" // "Sweden"
"adfs" // "Switzerland"
"adfs" // "Switzerland"
"adfssdf" // "France"
"adfssdf" // "Italy"
"adfssdf" // "Sweden"
"adfssdf" // "Switzerland"
关于rust - GTK入口补全自定义匹配函数怎么写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57695875/
补: Rest 风格请求处理的的内容补充(1) Rest风格请求:注意事项和细节 客户端是PostMan 可以直接发送Put,delete等方式请求,可不设置Filter 如果哟啊
我是一名优秀的程序员,十分优秀!