选择菜单项时无法显示组
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。
【讨论】:
以上是关于选择菜单项时无法显示组的主要内容,如果未能解决你的问题,请参考以下文章