我有一个 MATLAB GUI,它具有不同方面的功能,每个方面都有自己的 uicontrols 面板。选择一个面板后,另一个面板将设置为不可见,反之亦然。然而,它们以弹出菜单的形式共享一些相同的输入。我可以以某种方式在第二个面板上包含菜单的“克隆”实例吗?我想尽可能避免多余的回调和 uicontrol。

有帮助吗?

解决方案

我想如果 uicontrol 是图形的直接子级,您也许可以将它放在所有内容的前面。

一个更简单的解决方案是对多个 uicontrol 使用相同的回调。在属性编辑器中,您可以修改回调名称并将其设置为普通回调函数。此外,您可以创建一个字段(例如 myPopupH) 在里面 OpeningFcn GUI 的,您可以在其中存储应以相同方式运行的弹出窗口的句柄。然后,在回调中,您可以使用 hObject, , IE。第一个输入参数,对于所有 get 调用(以访问弹出菜单的修改状态),但您可以使用 handles.myPopupH 在所有的 set 调用,以便您可以确保两个弹出窗口始终具有相同的状态。因此,ui-object 可能是多余的,但所有代码(更为关键)仅存在于单个副本中。

我经常对多个 ui 元素使用单个回调的地方是关闭请求函数,可以从“取消”按钮以及关闭图形的“X”访问,也可能从“文件”之一访问- 菜单项。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top