GNU Octave技术问询:如何点击面板内按钮隐藏面板?
实现Octave按钮点击隐藏面板的功能
很简单,只需要给你的按钮控件添加回调函数,在回调逻辑里修改面板的可见性属性即可。以下是完整的可运行代码:
f = figure; p = uipanel("title", "HELLO WORLD", "position", [.2 .2 .75 .75]); c = uicontrol( "parent", p, "string", "HELLO.", "position", [150 10 100 20], "callback", @(~,~) set(p, "visible", "off") # 关键实现行 );
关键部分解释:
- 我们给
uicontrol新增了"callback"属性,值是一个匿名函数:@(~,~) set(p, "visible", "off") - 匿名函数里的
~是占位符——Octave的UI回调默认会传入两个参数(触发控件对象、事件数据),这里我们不需要用到这两个参数,所以用~忽略 set(p, "visible", "off")是核心逻辑:调用set函数把面板p的可见性设置为"off",从而实现点击按钮后隐藏面板的效果
如果需要实现点击按钮切换面板显示/隐藏的功能,可以把回调改成这样:
"callback", @(~,~) set(p, "visible", ~strcmp(get(p, "visible"), "on"))
这个逻辑会先获取面板当前的可见状态,然后取反设置,实现点击一次隐藏、再点击一次显示的切换效果。
内容的提问来源于stack exchange,提问作者amberlacsina
相关产品推荐
相关产品推荐

