选择菜单项时无法显示组

Posted

技术标签:

【中文标题】选择菜单项时无法显示组【英文标题】:Can not get Group to show up when menu item is selected 【发布时间】:2021-11-16 19:08:34 【问题描述】:

我一直在尝试获取菜单和子菜单项以产生所需的输出。我尝试了多种方法,有些方法可以部分工作,而另一些则根本不起作用。下面是我最近的尝试。显示主窗口,可以选择菜单和子菜单项。我有打印!每个语句中的语句,并且结果在选择时显示在终端窗口中。没有发生的是 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");
                

【问题讨论】:

也许这个例子可以帮到你(see example) 这是一个很好的例子,但代码是一致的(都在同一个块中)。我需要有一个内部块或包含 GROUP 构建和显示的函数调用。 你是暂时调用绘图函数还是其他函数?很抱歉,我试图提供帮助,但我以前从未使用过 FLTK 在上面的代码中,我寻找一个菜单选择。然后基于我想创建一个包含我试图从用户那里获取的信息的 GROUP 窗口的选择。我只是不知道如何让 GROUP 出现。 你从不调用绘图函数,并告诉它要绘制什么,所以什么都没有出现。请参阅我在之前评论中给出的示例,您有 group.draw(...) 呼叫线 14 【参考方案1】:

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

【讨论】:

以上是关于选择菜单项时无法显示组的主要内容,如果未能解决你的问题,请参考以下文章

如何在不关闭菜单的情况下选择菜单项?

在 WinForms 中为上下文菜单动态选择菜单项的正确方法是啥?

Android项目需要帮助[关闭]

单击主菜单项的jQuery不会显示子子菜单

任务栏总是显示所有图标无法折叠隐藏

选择 TableView 单元格时无法显示另一个 ViewController