如何解决在GUI中更改面板属性
| 我尝试了很多事情,并通过google和stackoverflow寻找了大量关键字,而我实际上总是使用完全相同的解决方案(对我而言毫无用处)。 这是我的问题: 我有一个带有uibuttongroup \“ Youpi \”和两个单选按钮\“ visible \”和\“ invi \”的GUI。 我还有另一个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,\'off\');
otherwise
% Code for when there is no match.
end
它不起作用,并且我总是收到相同的错误消息(请参见下文)。
我进行了这两个测试,以找出问题的出处:
_我通过disp函数更改了大小写:当我切换两个单选按钮时,消息将正确显示。它不是来自SelectionChangeFcn函数。
_在第一个名为\“ GUI_openingFcn \”的函数中,我输入set(handles.Tralala,\'off\');
并且它可以正常工作(例如,如果我运行GUI,则看不到面板)。
您知道为什么面板手柄从一种功能消失到另一种功能吗?
这是错误消息:
??? Undefined variable \"Tralala\" or class \"handles.Tralala\".
Error in ==> MaccorGUI>Youpi_SelectionChangeFcn at 272
set(handles.Tralala,\'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
请帮助我找到解决方案。
谢谢。解决方法
好的,我找到了解决方案。我不认为这是最好的,但至少它能起作用。
在\“ switch \”之前,我添加了以下命令:
a = guidata(get(hObject,\'parent\'));
而在开关中,我使用\“ a \”,而不是使用\“ handles \”。
注意:它也适用于guihandles(您可以通过这种方式访问handles.output),您需要向选择更改功能定义添加句柄
function Youpi_SelectionChangeFcn(hObject,eventdata,handles)
,我每次使用按钮中的一个选择图像时都会创建一个带有按钮的组面板,每个按钮都有一个图像
感谢您帮助我找到源代码
我在做
uipanel4_SelectionChangeFcn函数(hObject,EVENTDATA,句柄)
%hObject handle到uipanel4中的选定对象
%具有以下EVENTDATA结构字段(请参见UIBUTTONGROUP)
%EventName:字符串\'SelectionChanged \'(只读)
%OldValue:先前选择的对象的句柄;如果未选择,则为空
%NewValue:当前选定对象的句柄
%使用句柄和用户数据处理结构(请参见GUIDAT)
如果RadioButton1 == get(handles.radiobutton1,\'value \',1)
设置(handles.axes4,\'because \')
else radioButton2 == get(handles.radiobutton2,\'value \',1)
设置(handles.axes4 \'man \')版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。