Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将句柄从一个m文件传递到另一个m文件_Matlab_User Interface_Handles - Fatal编程技术网

Matlab 将句柄从一个m文件传递到另一个m文件

Matlab 将句柄从一个m文件传递到另一个m文件,matlab,user-interface,handles,Matlab,User Interface,Handles,从我的“主”窗口我有一个按钮,打开另一个窗口“列表”。在列表窗口中,我有两个列表框,左边的一个有名字,右边的一个我给它添加名字。但是,一旦单击“列表”窗口上的“确定”按钮,我就无法将添加到列表中的名称传递到“主”窗口 我得到的错误是: ???类句柄的列表框中没有适当的方法、属性或字段错误。 ==>Insert\u Fault>Done\u按钮在380处回调时出错 设置(主、句柄、故障\u列表框、'String',SelectedFaults) 96处的==>gui_mainfcn中出错 feva

从我的“主”窗口我有一个按钮,打开另一个窗口“列表”。在列表窗口中,我有两个列表框,左边的一个有名字,右边的一个我给它添加名字。但是,一旦单击“列表”窗口上的“确定”按钮,我就无法将添加到列表中的名称传递到“主”窗口

我得到的错误是:

???类句柄的列表框中没有适当的方法、属性或字段错误。
==>Insert\u Fault>Done\u按钮在380处回调时出错
设置(主、句柄、故障\u列表框、'String',SelectedFaults)
96处的==>gui_mainfcn中出错
feval(varargin{:});
错误==>在42处插入\u故障
gui_mainfcn(gui_State,varargin{:});
?评估uicontrol回调时出错

两个m文件都在同一个目录中。我被卡住了。感谢您的帮助

您的代码没有显示变量“handle”是如何定义的。您的意思是“handles”吗?在本例中,handles结构是Insert_故障图附带的结构,与主图的handles结构无关

如果要修改主窗口中的列表框,可以将故障列表框的句柄从主图形传递到插入故障图形,例如通过

下面的代码应该执行您想要的操作

大体上:

% Callback of a button in main that opens the Insert_Fault figure
function Open_Insert_Fault_Callback(hObject, eventdata, handles)
Insert_Fault('UserData', struct('Mainhandles', handles));
在插入故障时:

function Done_Button_Callback(hObject, eventdata, handles)
SelectedFaults = get(handles.SelectedFaults_Listbox,'String');  

userdata=get(handles.figure1, 'UserData');
Mainhandles=userdata.mainhandles;

set(Mainhandles.Faults_Listbox,'String',SelectedFaults)   
close(Insert_Fault)

太棒了…稍微修改一下你的代码就行了。非常感谢你的帮助
function Done_Button_Callback(hObject, eventdata, handles)
SelectedFaults = get(handles.SelectedFaults_Listbox,'String');  

userdata=get(handles.figure1, 'UserData');
Mainhandles=userdata.mainhandles;

set(Mainhandles.Faults_Listbox,'String',SelectedFaults)   
close(Insert_Fault)