2011-04-19 119 views
0

我尝试了很多事情,并通过google和stackoverflow看到了关键字thousant,而且我实际上总是落在相同的(对我无用的)解决方案中。在GUI中更改面板属性

这里是我的问题:

我有一个GUI与uibuttongroup“Youpi”有两个单选按钮“看得见”和“全国住房研究所”。 我有其他的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改变了情况下的显示功能:当我切换我的两个单选按钮,消息显示正确。它不是来自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

您需要添加处理的选择变化的函数定义

function Youpi_SelectionChangeFcn(hObject,eventdata, handles) 
+0

谢谢您的回答:)。但是我仍然收到类似的错误,只有第一行发生了变化: '???输入参数“手柄”未定义。# 这是查找解决方案的开始。如果我发现,我会保持更新。 – Wlikotae 2011-04-20 07:05:39

+0

我有R2010a。在网络上,我看到2006年有些人在制作回调函数SelectionChangeFcn时会自动显示“句柄”输入。所以我删除了我的功能,右键单击我的按钮组,并回调>> SelectionChangeFcn,而不是手动操作。这次出现“句柄”输入。然而在调试器中,我只有hObject和eventdata,当我单击其中一个单选按钮时。 – Wlikotae 2011-04-20 08:06:07

+0

@Wlikotae:奇怪的不知道发生了什么事。无论如何,我看到你找到了解决办法。 – Azim 2011-04-20 18:14:37

2

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

之前“开关”我加了下面的命令:

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

而在交换机而不是使用“处理”用“a”。

注:它的工作原理也与guihandles(你可以有机会获得handles.output这种方式),每一次我在按钮中的一个

0

我创建了一个组面板按钮选择图像,他m'aficher每个按钮具有图像 谢谢你帮我找到源代码 我做 uipanel4_SelectionChangeFcn功能(hObject,EVENTDATA,处理) %hObject处理所选择的对象在uipanel4 %与以下EVENTDATA结构域(请参阅UIBUTTONGROUP) %EventName:string'SelectionChanged'(只读) %OldValue:hand如果没有选择对象,则返回空;如果RadioButton1 == get(handles.radiobutton1,'value','value'),则返回“当前选定对象的句柄” % % % 1) 集(handles.axes4, '因为') 其他radioButton2 ==得到(handles.radiobutton2, '价值',1) 集(handles.axes4 '人')