小编J. *_*Doe的帖子

如何将数据移动到多个Rust闭包中?

我在一个简单的GTK应用程序中有两个小部件:

extern crate gdk;
extern crate gtk;

use super::desktop_entry::DesktopEntry;

use gdk::enums::key;
use gtk::prelude::*;

pub fn launch_ui(_desktop_entries: Vec<DesktopEntry>) {
    gtk::init().unwrap();

    let builder = gtk::Builder::new_from_string(include_str!("interface.glade"));

    let window: gtk::Window = builder.get_object("main_window").unwrap();
    let search_entry: gtk::SearchEntry = builder.get_object("search_entry").unwrap();
    let list_box: gtk::ListBox = builder.get_object("list_box").unwrap();

    window.show_all();

    search_entry.connect_search_changed(move |_se| {
        let _a = list_box.get_selected_rows();
    });

    window.connect_key_press_event(move |_, key| {
        match key.get_keyval() {
            key::Down => {
                list_box.unselect_all();
            }
            _ => {}
        }
        gtk::Inhibit(false)
    });

    gtk::main();
}
Run Code Online (Sandbox Code Playgroud)

我需要更改list_box两个事件。我有两个闭包that move,但是list_box由于出现错误,无法同时移动到两个闭包:

extern crate gdk;
extern crate gtk; …
Run Code Online (Sandbox Code Playgroud)

rust gtk-rs

4
推荐指数
3
解决办法
415
查看次数

标签 统计

gtk-rs ×1

rust ×1