我尝试了很多东西,并通过google和stackoverflow查看了关键词,而且我总是对同样的(对我来说无用)解决方案。
这是我的问题:
我有一个带有uibuttongroup“Youpi”的GUI,有两个单选按钮“visible”和“invi”。 我有另一个uipanel“Tralala”。
我创建了以下代码:
function Youpi_SelectionChangeFcn(hObject,eventdata)
switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
case 'visible'
set(handles.Tralala, 'visible', 'on');
case 'invi'
set(handles.Tralala, 'visible', 'off');
otherwise
% Code for when there is no match.
end
它不起作用,我总是得到相同的错误消息(见下文)。
我做了这两个测试来找出问题所在:
_I通过disp函数改变了大小写:当我切换两个单选按钮时,消息显示正确。它不是来自SelectionChangeFcn函数。
_在第一个名为“GUI_OpeningFcn”的函数中,我输入set(handles.Tralala, 'visible', 'off');
并且它正常工作(例如,如果我运行GUI,我看不到面板)。
你知道为什么面板手柄从一个功能消失到另一个功能吗?
以下是错误消息:
??? Undefined variable "Tralala" or class "handles.Tralala".
Error in ==> MaccorGUI>Youpi_SelectionChangeFcn at 272
set(handles.Tralala, 'visible', 'on');
Error in ==> hgfeval at 63
feval(fcn{1},varargin{:},fcn{2:end});
Error in ==> uitools.uibuttongroup.childAddedCbk>manageButtons at 80
hgfeval(cbk, source, evdata);
??? Error while evaluating uicontrol Callback
请帮我找一个解决方案。
谢谢。
答案 0 :(得分:2)
好的,我找到了解决方案。我不认为这是最好的,但至少它是有效的。
在“切换”之前,我添加了以下命令:
a = guidata(get(hObject,'parent'));
在开关中,而不是使用“句柄”,我使用“a”。
注意:它也适用于guihandles(你可以通过这种方式访问handle.output)
答案 1 :(得分:0)
您需要将句柄添加到选择更改函数定义
function Youpi_SelectionChangeFcn(hObject,eventdata, handles)
答案 2 :(得分:0)
我创建了一个带有按钮的组面板,每次我按下一个按钮选择一个图像,他每个按钮都有一个图像 感谢您帮助我找到源代码 我在做 uipanel4_SelectionChangeFcn函数(hObject,EVENTDATA,handle) %hObject句柄到uipanel4中的所选对象 %具有以下EVENTDATA结构字段(请参阅UIBUTTONGROUP) %EventName:string'SelectionChanged'(只读) %OldValue:先前选定对象的句柄,如果没有选择WAS,则为空 %NewValue:当前所选对象的句柄 %处理具有句柄和用户数据的结构(请参阅GUIDAT) 如果RadioButton1 == get(handles.radiobutton1,'value',1) 设置(handles.axes4,'因为') else radioButton2 == get(handles.radiobutton2,'value',1) 设置(handles.axes4'man')