我正在创建一个带有一些gui的gui,当我从一个带有“open menu.fig”的图形打开一个.fig它打开很好,但是当我使用一个按钮来改变一些图形组件属性时“set” (handles.text1,'string',“123”)“它不起作用。 错误:尝试引用非结构数组的字段。 但是当我在matlab中打开这个图而不是来自另一个gui时,它可以正常工作。
答案 0 :(得分:0)
这有几个可能的原因。当你调用“set(handles.text1,'string',”123“)”时,显然handle.text1不存在。我想你这里没有正确的手柄......
handle-structure只包含自己元素的句柄(默认情况下......如果你愿意,可以附加你需要的任何东西)
要获得另一个图形的句柄,您必须直接找到元素的图形或句柄。您可以按照此处的说明执行此操作:
how-do-i-get-the-handles-of-all-open-figures-in-matlab
在你的情况下
figHandles = findall(0,'Tag','text1');
会有所帮助,但前提是这个标签只有一个元素!!
如果你有另一个图的句柄(myFigure,你可以使用:
figHandles = findall(myFigure,'Tag','text1');
您也可以使用
output = open("menu.fig")
直接获取新数字的句柄 - >
figHandles = findall(output ,'Tag','text1');
将完成这项工作:)