0

我尝试了很多东西,并通过 google 和 stackoverflow 查找了数以千计的关键字,我确实总是落在相同的(对我来说没用的)解决方案上。

这是我的问题:

我有一个带有 uibuttongroup“Youpi”的 GUI,带有两个单选按钮“可见”和“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

它不起作用,我总是收到相同的错误消息(见下文)。我进行了这两个测试以找出问题出在哪里:_我通过 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

请帮我找到解决方案。

谢谢你。

4

3 回答 3

2

好的,我找到了解决方案。我不认为它是最好的,但至少它有效。

在“切换”之前,我添加了以下命令:

a = guidata(get(hObject,'parent'));

在开关中,我不使用“句柄”,而是使用“a”。

注意:它也适用于guihandles(您可以通过这种方式访问​​handles.output)

于 2011-04-20T08:22:05.953 回答
0

您需要在选择更改函数定义中添加句柄

function Youpi_SelectionChangeFcn(hObject,eventdata, handles)
于 2011-04-19T16:36:19.473 回答
0

我创建了一个带有按钮的组面板,每次我是其中一个按钮选择一个图像他 m'aficher 每个按钮都有一个图像谢谢你帮助我找到我正在做的源代码 uipanel4_SelectionChangeFcn 函数(hObject,EVENTDATA,句柄) % hObject 句柄 到 uipanel4 中选定的对象 % 具有以下 EVENTDATA 结构字段(请参阅 UIBUTTONGROUP) % EventName:字符串 'SelectionChanged' (只读) % OldValue:先前选择的对象的句柄,如果没有选择则为空 WAS % NewValue : 当前选定对象的句柄 % 处理带有句柄和用户数据的结构(参见 GUIDAT) if RadioButton1 == get (handles.radiobutton1, 'value', 1) Set (handles.axes4, 'because') else radioButton2 == get (handles.radiobutton2, 'value', 1) 设置 (handles.axes4 'man')

于 2011-05-03T22:18:18.440 回答