首页 > 解决方案 > 选择菜单项时无法显示组

问题描述

我一直在尝试获取菜单和子菜单项以产生所需的输出。我尝试了多种方法,有些方法可以部分工作,而另一些则根本不起作用。下面是我最近的尝试。显示主窗口,可以选择菜单和子菜单项。我有打印!每个语句中的语句,并且结果在选择时显示在终端窗口中。没有发生的是 GROUP 没有显示,尽管我知道我在该区域,因为我从两个 println! 获得了输出。我到底做错了什么??????

对于那些认为我应该自己学习如何做到这一点的人,请指出一些我可以阅读的信息来帮助我解决这个问题。我找到的所有信息都将所有项目都放在一个没有分支的线程中。

main_win.show();
    main_win.set_callback(move|_| {
        if app::event() == Event::Close {
            s.send(Message::Quit);
        }
    });

    while app.wait() {
        use Message::*;
        if let Some(msg) = r.recv() {
            match msg {
                Preference => {
                    println!("In Preference area");
                }
                Quit => {
                    app.quit();
                }

                Wallets => {
                    println!("In Wallets area");

                    let mut wall_group =
                        fltk::group::Group::new(50, 90, 500, 300, "Wallet Data Add/Change/Delete");
                    
                    wall_group.set_frame(FrameType::FlatBox);
                    wall_group.set_color(Color::by_index(2));
                    wall_group.end();
                                       
                    let wall_name = fltk::input::Input::new(180, 105, 170, 20, "Wallet Name:");
                    wall_group.add(&wall_name);
                    let wall_username =
                        fltk::input::Input::new(180, 130, 170, 20, "Wallet Username:");
                    wall_group.add(&wall_username);
                    let wall_password =
                        fltk::input::Input::new(180, 155, 170, 20, "Wallet Password:");
                    wall_group.add(&wall_password);
                    let btn_wall_add = fltk::button::Button::new(180, 190, 60, 20, "Add");
                    wall_group.add(&btn_wall_add);
                    let btn_wall_delete = fltk::button::Button::new(260, 190, 60, 20, "Delete");
                    wall_group.add(&btn_wall_delete);
                    println!("In Wallets area 2");
                }

标签: rustfltk

解决方案


目前,实例化的组不是直接或间接地作为窗口的父级。您可以使用 window.add(&wall_group) 添加它(或使用插入)。更好的是,您已经可以创建组,将其隐藏,然后在 Wallets 事件中调用 show。


推荐阅读